sysml-v2-lsp 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,117 +0,0 @@
1
- import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
2
- var bR=Object.create;var y4=Object.defineProperty;var gR=Object.getOwnPropertyDescriptor;var RR=Object.getOwnPropertyNames;var yR=Object.getPrototypeOf,CR=Object.prototype.hasOwnProperty;var kt=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var q=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var vR=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of RR(e))!CR.call(r,n)&&n!==t&&y4(r,n,{get:()=>e[n],enumerable:!(i=gR(e,n))||i.enumerable});return r};var vt=(r,e,t)=>(t=r!=null?bR(yR(r)):{},vR(e||!r||!r.__esModule?y4(t,"default",{value:r,enumerable:!0}):t,r));var dl=q(Ge=>{"use strict";Object.defineProperty(Ge,"__esModule",{value:!0});Ge.thenable=Ge.typedArray=Ge.stringArray=Ge.array=Ge.func=Ge.error=Ge.number=Ge.string=Ge.boolean=void 0;function ER(r){return r===!0||r===!1}Ge.boolean=ER;function C4(r){return typeof r=="string"||r instanceof String}Ge.string=C4;function LR(r){return typeof r=="number"||r instanceof Number}Ge.number=LR;function SR(r){return r instanceof Error}Ge.error=SR;function v4(r){return typeof r=="function"}Ge.func=v4;function E4(r){return Array.isArray(r)}Ge.array=E4;function PR(r){return E4(r)&&r.every(e=>C4(e))}Ge.stringArray=PR;function TR(r,e){return Array.isArray(r)&&r.every(e)}Ge.typedArray=TR;function AR(r){return r&&v4(r.then)}Ge.thenable=AR});var mn=q(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});lt.stringArray=lt.array=lt.func=lt.error=lt.number=lt.string=lt.boolean=void 0;function MR(r){return r===!0||r===!1}lt.boolean=MR;function L4(r){return typeof r=="string"||r instanceof String}lt.string=L4;function NR(r){return typeof r=="number"||r instanceof Number}lt.number=NR;function UR(r){return r instanceof Error}lt.error=UR;function wR(r){return typeof r=="function"}lt.func=wR;function S4(r){return Array.isArray(r)}lt.array=S4;function DR(r){return S4(r)&&r.every(e=>L4(e))}lt.stringArray=DR});var G2=q(Q=>{"use strict";Object.defineProperty(Q,"__esModule",{value:!0});Q.Message=Q.NotificationType9=Q.NotificationType8=Q.NotificationType7=Q.NotificationType6=Q.NotificationType5=Q.NotificationType4=Q.NotificationType3=Q.NotificationType2=Q.NotificationType1=Q.NotificationType0=Q.NotificationType=Q.RequestType9=Q.RequestType8=Q.RequestType7=Q.RequestType6=Q.RequestType5=Q.RequestType4=Q.RequestType3=Q.RequestType2=Q.RequestType1=Q.RequestType=Q.RequestType0=Q.AbstractMessageSignature=Q.ParameterStructures=Q.ResponseError=Q.ErrorCodes=void 0;var Ei=mn(),y2;(function(r){r.ParseError=-32700,r.InvalidRequest=-32600,r.MethodNotFound=-32601,r.InvalidParams=-32602,r.InternalError=-32603,r.jsonrpcReservedErrorRangeStart=-32099,r.serverErrorStart=-32099,r.MessageWriteError=-32099,r.MessageReadError=-32098,r.PendingResponseRejected=-32097,r.ConnectionInactive=-32096,r.ServerNotInitialized=-32002,r.UnknownErrorCode=-32001,r.jsonrpcReservedErrorRangeEnd=-32e3,r.serverErrorEnd=-32e3})(y2||(Q.ErrorCodes=y2={}));var C2=class r extends Error{constructor(e,t,i){super(t),this.code=Ei.number(e)?e:y2.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,r.prototype)}toJson(){let e={code:this.code,message:this.message};return this.data!==void 0&&(e.data=this.data),e}};Q.ResponseError=C2;var Et=class r{constructor(e){this.kind=e}static is(e){return e===r.auto||e===r.byName||e===r.byPosition}toString(){return this.kind}};Q.ParameterStructures=Et;Et.auto=new Et("auto");Et.byPosition=new Et("byPosition");Et.byName=new Et("byName");var Ne=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return Et.auto}};Q.AbstractMessageSignature=Ne;var v2=class extends Ne{constructor(e){super(e,0)}};Q.RequestType0=v2;var E2=class extends Ne{constructor(e,t=Et.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Q.RequestType=E2;var L2=class extends Ne{constructor(e,t=Et.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Q.RequestType1=L2;var S2=class extends Ne{constructor(e){super(e,2)}};Q.RequestType2=S2;var P2=class extends Ne{constructor(e){super(e,3)}};Q.RequestType3=P2;var T2=class extends Ne{constructor(e){super(e,4)}};Q.RequestType4=T2;var A2=class extends Ne{constructor(e){super(e,5)}};Q.RequestType5=A2;var M2=class extends Ne{constructor(e){super(e,6)}};Q.RequestType6=M2;var N2=class extends Ne{constructor(e){super(e,7)}};Q.RequestType7=N2;var U2=class extends Ne{constructor(e){super(e,8)}};Q.RequestType8=U2;var w2=class extends Ne{constructor(e){super(e,9)}};Q.RequestType9=w2;var D2=class extends Ne{constructor(e,t=Et.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Q.NotificationType=D2;var O2=class extends Ne{constructor(e){super(e,0)}};Q.NotificationType0=O2;var I2=class extends Ne{constructor(e,t=Et.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};Q.NotificationType1=I2;var k2=class extends Ne{constructor(e){super(e,2)}};Q.NotificationType2=k2;var F2=class extends Ne{constructor(e){super(e,3)}};Q.NotificationType3=F2;var H2=class extends Ne{constructor(e){super(e,4)}};Q.NotificationType4=H2;var B2=class extends Ne{constructor(e){super(e,5)}};Q.NotificationType5=B2;var _2=class extends Ne{constructor(e){super(e,6)}};Q.NotificationType6=_2;var V2=class extends Ne{constructor(e){super(e,7)}};Q.NotificationType7=V2;var q2=class extends Ne{constructor(e){super(e,8)}};Q.NotificationType8=q2;var j2=class extends Ne{constructor(e){super(e,9)}};Q.NotificationType9=j2;var P4;(function(r){function e(n){let a=n;return a&&Ei.string(a.method)&&(Ei.string(a.id)||Ei.number(a.id))}r.isRequest=e;function t(n){let a=n;return a&&Ei.string(a.method)&&n.id===void 0}r.isNotification=t;function i(n){let a=n;return a&&(a.result!==void 0||!!a.error)&&(Ei.string(a.id)||Ei.number(a.id)||a.id===null)}r.isResponse=i})(P4||(Q.Message=P4={}))});var z2=q(Wr=>{"use strict";var T4;Object.defineProperty(Wr,"__esModule",{value:!0});Wr.LRUCache=Wr.LinkedMap=Wr.Touch=void 0;var ut;(function(r){r.None=0,r.First=1,r.AsOld=r.First,r.Last=2,r.AsNew=r.Last})(ut||(Wr.Touch=ut={}));var pl=class{constructor(){this[T4]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=ut.None){let i=this._map.get(e);if(i)return t!==ut.None&&this.touch(i,t),i.value}set(e,t,i=ut.None){let n=this._map.get(e);if(n)n.value=t,i!==ut.None&&this.touch(n,i);else{switch(n={key:e,value:t,next:void 0,previous:void 0},i){case ut.None:this.addItemLast(n);break;case ut.First:this.addItemFirst(n);break;case ut.Last:this.addItemLast(n);break;default:this.addItemLast(n);break}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:t.key,done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}values(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:t.value,done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}entries(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw new Error("LinkedMap got modified during iteration.");if(t){let n={value:[t.key,t.value],done:!1};return t=t.next,n}else return{value:void 0,done:!0}}};return i}[(T4=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==ut.First&&t!==ut.Last)){if(t===ut.First){if(e===this._head)return;let i=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(i.previous=n,n.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===ut.Last){if(e===this._tail)return;let i=e.next,n=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=n,n.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(let[t,i]of e)this.set(t,i)}};Wr.LinkedMap=pl;var W2=class extends pl{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=ut.AsNew){return super.get(e,t)}peek(e){return super.get(e,ut.None)}set(e,t){return super.set(e,t,ut.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};Wr.LRUCache=W2});var M4=q(fl=>{"use strict";Object.defineProperty(fl,"__esModule",{value:!0});fl.Disposable=void 0;var A4;(function(r){function e(t){return{dispose:t}}r.create=e})(A4||(fl.Disposable=A4={}))});var zr=q($2=>{"use strict";Object.defineProperty($2,"__esModule",{value:!0});var K2;function Q2(){if(K2===void 0)throw new Error("No runtime abstraction layer installed");return K2}(function(r){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");K2=t}r.install=e})(Q2||(Q2={}));$2.default=Q2});var bn=q(xn=>{"use strict";Object.defineProperty(xn,"__esModule",{value:!0});xn.Emitter=xn.Event=void 0;var OR=zr(),N4;(function(r){let e={dispose(){}};r.None=function(){return e}})(N4||(xn.Event=N4={}));var Y2=class{add(e,t=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let i=!1;for(let n=0,a=this._callbacks.length;n<a;n++)if(this._callbacks[n]===e)if(this._contexts[n]===t){this._callbacks.splice(n,1),this._contexts.splice(n,1);return}else i=!0;if(i)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],i=this._callbacks.slice(0),n=this._contexts.slice(0);for(let a=0,o=i.length;a<o;a++)try{t.push(i[a].apply(n[a],e))}catch(l){(0,OR.default)().console.error(l)}return t}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},ml=class r{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new Y2),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let n={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),n.dispose=r._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(n),n}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};xn.Emitter=ml;ml._noop=function(){}});var gl=q(gn=>{"use strict";Object.defineProperty(gn,"__esModule",{value:!0});gn.CancellationTokenSource=gn.CancellationToken=void 0;var IR=zr(),kR=mn(),J2=bn(),xl;(function(r){r.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:J2.Event.None}),r.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:J2.Event.None});function e(t){let i=t;return i&&(i===r.None||i===r.Cancelled||kR.boolean(i.isCancellationRequested)&&!!i.onCancellationRequested)}r.is=e})(xl||(gn.CancellationToken=xl={}));var FR=Object.freeze(function(r,e){let t=(0,IR.default)().timer.setTimeout(r.bind(e),0);return{dispose(){t.dispose()}}}),bl=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?FR:(this._emitter||(this._emitter=new J2.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},X2=class{get token(){return this._token||(this._token=new bl),this._token}cancel(){this._token?this._token.cancel():this._token=xl.Cancelled}dispose(){this._token?this._token instanceof bl&&this._token.dispose():this._token=xl.None}};gn.CancellationTokenSource=X2});var U4=q(Rn=>{"use strict";Object.defineProperty(Rn,"__esModule",{value:!0});Rn.SharedArrayReceiverStrategy=Rn.SharedArraySenderStrategy=void 0;var HR=gl(),Ds;(function(r){r.Continue=0,r.Cancelled=1})(Ds||(Ds={}));var Z2=class{constructor(){this.buffers=new Map}enableCancellation(e){if(e.id===null)return;let t=new SharedArrayBuffer(4),i=new Int32Array(t,0,1);i[0]=Ds.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let i=this.buffers.get(t);if(i===void 0)return;let n=new Int32Array(i,0,1);Atomics.store(n,0,Ds.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};Rn.SharedArraySenderStrategy=Z2;var ep=class{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===Ds.Cancelled}get onCancellationRequested(){throw new Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}},tp=class{constructor(e){this.token=new ep(e)}cancel(){}dispose(){}},rp=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return t===void 0?new HR.CancellationTokenSource:new tp(t)}};Rn.SharedArrayReceiverStrategy=rp});var np=q(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.Semaphore=void 0;var BR=zr(),ip=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||(0,BR.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(i=>{this._active--,e.resolve(i),this.runNext()},i=>{this._active--,e.reject(i),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};Rl.Semaphore=ip});var D4=q(Kr=>{"use strict";Object.defineProperty(Kr,"__esModule",{value:!0});Kr.ReadableStreamMessageReader=Kr.AbstractMessageReader=Kr.MessageReader=void 0;var ap=zr(),yn=mn(),sp=bn(),_R=np(),w4;(function(r){function e(t){let i=t;return i&&yn.func(i.listen)&&yn.func(i.dispose)&&yn.func(i.onError)&&yn.func(i.onClose)&&yn.func(i.onPartialMessage)}r.is=e})(w4||(Kr.MessageReader=w4={}));var yl=class{constructor(){this.errorEmitter=new sp.Emitter,this.closeEmitter=new sp.Emitter,this.partialMessageEmitter=new sp.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${yn.string(e.message)?e.message:"unknown"}`)}};Kr.AbstractMessageReader=yl;var op;(function(r){function e(t){let i,n,a,o=new Map,l,h=new Map;if(t===void 0||typeof t=="string")i=t??"utf-8";else{if(i=t.charset??"utf-8",t.contentDecoder!==void 0&&(a=t.contentDecoder,o.set(a.name,a)),t.contentDecoders!==void 0)for(let f of t.contentDecoders)o.set(f.name,f);if(t.contentTypeDecoder!==void 0&&(l=t.contentTypeDecoder,h.set(l.name,l)),t.contentTypeDecoders!==void 0)for(let f of t.contentTypeDecoders)h.set(f.name,f)}return l===void 0&&(l=(0,ap.default)().applicationJson.decoder,h.set(l.name,l)),{charset:i,contentDecoder:a,contentDecoders:o,contentTypeDecoder:l,contentTypeDecoders:h}}r.fromOptions=e})(op||(op={}));var lp=class extends yl{constructor(e,t){super(),this.readable=e,this.options=op.fromOptions(t),this.buffer=(0,ap.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new _R.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(i=>{this.onData(i)});return this.readable.onError(i=>this.fireError(i)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let i=this.buffer.tryReadHeaders(!0);if(!i)return;let n=i.get("content-length");if(!n){this.fireError(new Error(`Header must provide a Content-Length property.
3
- ${JSON.stringify(Object.fromEntries(i))}`));return}let a=parseInt(n);if(isNaN(a)){this.fireError(new Error(`Content-Length value must be a number. Got ${n}`));return}this.nextMessageLength=a}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let i=this.options.contentDecoder!==void 0?await this.options.contentDecoder.decode(t):t,n=await this.options.contentTypeDecoder.decode(i,this.options);this.callback(n)}).catch(i=>{this.fireError(i)})}}catch(t){this.fireError(t)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=(0,ap.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Kr.ReadableStreamMessageReader=lp});var H4=q(Qr=>{"use strict";Object.defineProperty(Qr,"__esModule",{value:!0});Qr.WriteableStreamMessageWriter=Qr.AbstractMessageWriter=Qr.MessageWriter=void 0;var O4=zr(),Os=mn(),VR=np(),I4=bn(),qR="Content-Length: ",k4=`\r
4
- `,F4;(function(r){function e(t){let i=t;return i&&Os.func(i.dispose)&&Os.func(i.onClose)&&Os.func(i.onError)&&Os.func(i.write)}r.is=e})(F4||(Qr.MessageWriter=F4={}));var Cl=class{constructor(){this.errorEmitter=new I4.Emitter,this.closeEmitter=new I4.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,i){this.errorEmitter.fire([this.asError(e),t,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${Os.string(e.message)?e.message:"unknown"}`)}};Qr.AbstractMessageWriter=Cl;var up;(function(r){function e(t){return t===void 0||typeof t=="string"?{charset:t??"utf-8",contentTypeEncoder:(0,O4.default)().applicationJson.encoder}:{charset:t.charset??"utf-8",contentEncoder:t.contentEncoder,contentTypeEncoder:t.contentTypeEncoder??(0,O4.default)().applicationJson.encoder}}r.fromOptions=e})(up||(up={}));var cp=class extends Cl{constructor(e,t){super(),this.writable=e,this.options=up.fromOptions(t),this.errorCount=0,this.writeSemaphore=new VR.Semaphore(1),this.writable.onError(i=>this.fireError(i)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(i=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(i):i).then(i=>{let n=[];return n.push(qR,i.byteLength.toString(),k4),n.push(k4),this.doWrite(e,n,i)},i=>{throw this.fireError(i),i}))}async doWrite(e,t,i){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(i)}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}};Qr.WriteableStreamMessageWriter=cp});var B4=q(vl=>{"use strict";Object.defineProperty(vl,"__esModule",{value:!0});vl.AbstractMessageBuffer=void 0;var jR=13,GR=10,WR=`\r
5
- `,hp=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(this._chunks.length===0)return;let t=0,i=0,n=0,a=0;e:for(;i<this._chunks.length;){let f=this._chunks[i];for(n=0;n<f.length;){switch(f[n]){case jR:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case GR:switch(t){case 1:t=2;break;case 3:t=4,n++;break e;default:t=0}break;default:t=0}n++}a+=f.byteLength,i++}if(t!==4)return;let o=this._read(a+n),l=new Map,h=this.toString(o,"ascii").split(WR);if(h.length<2)return l;for(let f=0;f<h.length-2;f++){let x=h[f],R=x.indexOf(":");if(R===-1)throw new Error(`Message header must separate key and value using ':'
6
- ${x}`);let S=x.substr(0,R),M=x.substr(R+1).trim();l.set(e?S.toLowerCase():S,M)}return l}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(e===0)return this.emptyBuffer();if(e>this._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let a=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(a)}if(this._chunks[0].byteLength>e){let a=this._chunks[0],o=this.asNative(a,e);return this._chunks[0]=a.slice(e),this._totalLength-=e,o}let t=this.allocNative(e),i=0,n=0;for(;e>0;){let a=this._chunks[n];if(a.byteLength>e){let o=a.slice(0,e);t.set(o,i),i+=e,this._chunks[n]=a.slice(e),this._totalLength-=e,e-=e}else t.set(a,i),i+=a.byteLength,this._chunks.shift(),this._totalLength-=a.byteLength,e-=a.byteLength}return t}};vl.AbstractMessageBuffer=hp});var G4=q(se=>{"use strict";Object.defineProperty(se,"__esModule",{value:!0});se.createMessageConnection=se.ConnectionOptions=se.MessageStrategy=se.CancellationStrategy=se.CancellationSenderStrategy=se.CancellationReceiverStrategy=se.RequestCancellationReceiverStrategy=se.IdCancellationReceiverStrategy=se.ConnectionStrategy=se.ConnectionError=se.ConnectionErrors=se.LogTraceNotification=se.SetTraceNotification=se.TraceFormat=se.TraceValues=se.Trace=se.NullLogger=se.ProgressType=se.ProgressToken=void 0;var _4=zr(),Oe=mn(),Z=G2(),V4=z2(),Is=bn(),dp=gl(),Hs;(function(r){r.type=new Z.NotificationType("$/cancelRequest")})(Hs||(Hs={}));var pp;(function(r){function e(t){return typeof t=="string"||typeof t=="number"}r.is=e})(pp||(se.ProgressToken=pp={}));var ks;(function(r){r.type=new Z.NotificationType("$/progress")})(ks||(ks={}));var fp=class{constructor(){}};se.ProgressType=fp;var mp;(function(r){function e(t){return Oe.func(t)}r.is=e})(mp||(mp={}));se.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var xe;(function(r){r[r.Off=0]="Off",r[r.Messages=1]="Messages",r[r.Compact=2]="Compact",r[r.Verbose=3]="Verbose"})(xe||(se.Trace=xe={}));var q4;(function(r){r.Off="off",r.Messages="messages",r.Compact="compact",r.Verbose="verbose"})(q4||(se.TraceValues=q4={}));(function(r){function e(i){if(!Oe.string(i))return r.Off;switch(i=i.toLowerCase(),i){case"off":return r.Off;case"messages":return r.Messages;case"compact":return r.Compact;case"verbose":return r.Verbose;default:return r.Off}}r.fromString=e;function t(i){switch(i){case r.Off:return"off";case r.Messages:return"messages";case r.Compact:return"compact";case r.Verbose:return"verbose";default:return"off"}}r.toString=t})(xe||(se.Trace=xe={}));var Ut;(function(r){r.Text="text",r.JSON="json"})(Ut||(se.TraceFormat=Ut={}));(function(r){function e(t){return Oe.string(t)?(t=t.toLowerCase(),t==="json"?r.JSON:r.Text):r.Text}r.fromString=e})(Ut||(se.TraceFormat=Ut={}));var xp;(function(r){r.type=new Z.NotificationType("$/setTrace")})(xp||(se.SetTraceNotification=xp={}));var El;(function(r){r.type=new Z.NotificationType("$/logTrace")})(El||(se.LogTraceNotification=El={}));var Fs;(function(r){r[r.Closed=1]="Closed",r[r.Disposed=2]="Disposed",r[r.AlreadyListening=3]="AlreadyListening"})(Fs||(se.ConnectionErrors=Fs={}));var Cn=class r extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,r.prototype)}};se.ConnectionError=Cn;var bp;(function(r){function e(t){let i=t;return i&&Oe.func(i.cancelUndispatched)}r.is=e})(bp||(se.ConnectionStrategy=bp={}));var Ll;(function(r){function e(t){let i=t;return i&&(i.kind===void 0||i.kind==="id")&&Oe.func(i.createCancellationTokenSource)&&(i.dispose===void 0||Oe.func(i.dispose))}r.is=e})(Ll||(se.IdCancellationReceiverStrategy=Ll={}));var gp;(function(r){function e(t){let i=t;return i&&i.kind==="request"&&Oe.func(i.createCancellationTokenSource)&&(i.dispose===void 0||Oe.func(i.dispose))}r.is=e})(gp||(se.RequestCancellationReceiverStrategy=gp={}));var Sl;(function(r){r.Message=Object.freeze({createCancellationTokenSource(t){return new dp.CancellationTokenSource}});function e(t){return Ll.is(t)||gp.is(t)}r.is=e})(Sl||(se.CancellationReceiverStrategy=Sl={}));var Pl;(function(r){r.Message=Object.freeze({sendCancellation(t,i){return t.sendNotification(Hs.type,{id:i})},cleanup(t){}});function e(t){let i=t;return i&&Oe.func(i.sendCancellation)&&Oe.func(i.cleanup)}r.is=e})(Pl||(se.CancellationSenderStrategy=Pl={}));var Tl;(function(r){r.Message=Object.freeze({receiver:Sl.Message,sender:Pl.Message});function e(t){let i=t;return i&&Sl.is(i.receiver)&&Pl.is(i.sender)}r.is=e})(Tl||(se.CancellationStrategy=Tl={}));var Al;(function(r){function e(t){let i=t;return i&&Oe.func(i.handleMessage)}r.is=e})(Al||(se.MessageStrategy=Al={}));var j4;(function(r){function e(t){let i=t;return i&&(Tl.is(i.cancellationStrategy)||bp.is(i.connectionStrategy)||Al.is(i.messageStrategy))}r.is=e})(j4||(se.ConnectionOptions=j4={}));var tr;(function(r){r[r.New=1]="New",r[r.Listening=2]="Listening",r[r.Closed=3]="Closed",r[r.Disposed=4]="Disposed"})(tr||(tr={}));function zR(r,e,t,i){let n=t!==void 0?t:se.NullLogger,a=0,o=0,l=0,h="2.0",f,x=new Map,R,S=new Map,M=new Map,O,W=new V4.LinkedMap,Y=new Map,z=new Set,L=new Map,v=xe.Off,D=Ut.Text,I,J=tr.New,te=new Is.Emitter,le=new Is.Emitter,Ce=new Is.Emitter,Mt=new Is.Emitter,jr=new Is.Emitter,Ct=i&&i.cancellationStrategy?i.cancellationStrategy:Tl.Message;function ln(g){if(g===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+g.toString()}function un(g){return g===null?"res-unknown-"+(++l).toString():"res-"+g.toString()}function Yo(){return"not-"+(++o).toString()}function R2(g,N){Z.Message.isRequest(N)?g.set(ln(N.id),N):Z.Message.isResponse(N)?g.set(un(N.id),N):g.set(Yo(),N)}function Jo(g){}function Ts(){return J===tr.Listening}function yi(){return J===tr.Closed}function Pr(){return J===tr.Disposed}function cn(){(J===tr.New||J===tr.Listening)&&(J=tr.Closed,le.fire(void 0))}function Ci(g){te.fire([g,void 0,void 0])}function Xo(g){te.fire(g)}r.onClose(cn),r.onError(Ci),e.onClose(cn),e.onError(Xo);function As(){O||W.size===0||(O=(0,_4.default)().timer.setImmediate(()=>{O=void 0,Zo()}))}function Ms(g){Z.Message.isRequest(g)?tl(g):Z.Message.isNotification(g)?il(g):Z.Message.isResponse(g)?rl(g):hn(g)}function Zo(){if(W.size===0)return;let g=W.shift();try{let N=i?.messageStrategy;Al.is(N)?N.handleMessage(g,Ms):Ms(g)}finally{As()}}let el=g=>{try{if(Z.Message.isNotification(g)&&g.method===Hs.type.method){let N=g.params.id,F=ln(N),K=W.get(F);if(Z.Message.isRequest(K)){let Re=i?.connectionStrategy,Me=Re&&Re.cancelUndispatched?Re.cancelUndispatched(K,Jo):void 0;if(Me&&(Me.error!==void 0||Me.result!==void 0)){W.delete(F),L.delete(N),Me.id=K.id,vi(Me,g.method,Date.now()),e.write(Me).catch(()=>n.error("Sending response for canceled message failed."));return}}let Ee=L.get(N);if(Ee!==void 0){Ee.cancel(),dn(g);return}else z.add(N)}R2(W,g)}finally{As()}};function tl(g){if(Pr())return;function N(ue,Se,fe){let ke={jsonrpc:h,id:g.id};ue instanceof Z.ResponseError?ke.error=ue.toJson():ke.result=ue===void 0?null:ue,vi(ke,Se,fe),e.write(ke).catch(()=>n.error("Sending response failed."))}function F(ue,Se,fe){let ke={jsonrpc:h,id:g.id,error:ue.toJson()};vi(ke,Se,fe),e.write(ke).catch(()=>n.error("Sending response failed."))}function K(ue,Se,fe){ue===void 0&&(ue=null);let ke={jsonrpc:h,id:g.id,result:ue};vi(ke,Se,fe),e.write(ke).catch(()=>n.error("Sending response failed."))}al(g);let Ee=x.get(g.method),Re,Me;Ee&&(Re=Ee.type,Me=Ee.handler);let we=Date.now();if(Me||f){let ue=g.id??String(Date.now()),Se=Ll.is(Ct.receiver)?Ct.receiver.createCancellationTokenSource(ue):Ct.receiver.createCancellationTokenSource(g);g.id!==null&&z.has(g.id)&&Se.cancel(),g.id!==null&&L.set(ue,Se);try{let fe;if(Me)if(g.params===void 0){if(Re!==void 0&&Re.numberOfParams!==0){F(new Z.ResponseError(Z.ErrorCodes.InvalidParams,`Request ${g.method} defines ${Re.numberOfParams} params but received none.`),g.method,we);return}fe=Me(Se.token)}else if(Array.isArray(g.params)){if(Re!==void 0&&Re.parameterStructures===Z.ParameterStructures.byName){F(new Z.ResponseError(Z.ErrorCodes.InvalidParams,`Request ${g.method} defines parameters by name but received parameters by position`),g.method,we);return}fe=Me(...g.params,Se.token)}else{if(Re!==void 0&&Re.parameterStructures===Z.ParameterStructures.byPosition){F(new Z.ResponseError(Z.ErrorCodes.InvalidParams,`Request ${g.method} defines parameters by position but received parameters by name`),g.method,we);return}fe=Me(g.params,Se.token)}else f&&(fe=f(g.method,g.params,Se.token));let ke=fe;fe?ke.then?ke.then(Je=>{L.delete(ue),N(Je,g.method,we)},Je=>{L.delete(ue),Je instanceof Z.ResponseError?F(Je,g.method,we):Je&&Oe.string(Je.message)?F(new Z.ResponseError(Z.ErrorCodes.InternalError,`Request ${g.method} failed with message: ${Je.message}`),g.method,we):F(new Z.ResponseError(Z.ErrorCodes.InternalError,`Request ${g.method} failed unexpectedly without providing any details.`),g.method,we)}):(L.delete(ue),N(fe,g.method,we)):(L.delete(ue),K(fe,g.method,we))}catch(fe){L.delete(ue),fe instanceof Z.ResponseError?N(fe,g.method,we):fe&&Oe.string(fe.message)?F(new Z.ResponseError(Z.ErrorCodes.InternalError,`Request ${g.method} failed with message: ${fe.message}`),g.method,we):F(new Z.ResponseError(Z.ErrorCodes.InternalError,`Request ${g.method} failed unexpectedly without providing any details.`),g.method,we)}}else F(new Z.ResponseError(Z.ErrorCodes.MethodNotFound,`Unhandled method ${g.method}`),g.method,we)}function rl(g){if(!Pr())if(g.id===null)g.error?n.error(`Received response message without id: Error is:
7
- ${JSON.stringify(g.error,void 0,4)}`):n.error("Received response message without id. No further error information provided.");else{let N=g.id,F=Y.get(N);if(ol(g,F),F!==void 0){Y.delete(N);try{if(g.error){let K=g.error;F.reject(new Z.ResponseError(K.code,K.message,K.data))}else if(g.result!==void 0)F.resolve(g.result);else throw new Error("Should never happen.")}catch(K){K.message?n.error(`Response handler '${F.method}' failed with message: ${K.message}`):n.error(`Response handler '${F.method}' failed unexpectedly.`)}}}}function il(g){if(Pr())return;let N,F;if(g.method===Hs.type.method){let K=g.params.id;z.delete(K),dn(g);return}else{let K=S.get(g.method);K&&(F=K.handler,N=K.type)}if(F||R)try{if(dn(g),F)if(g.params===void 0)N!==void 0&&N.numberOfParams!==0&&N.parameterStructures!==Z.ParameterStructures.byName&&n.error(`Notification ${g.method} defines ${N.numberOfParams} params but received none.`),F();else if(Array.isArray(g.params)){let K=g.params;g.method===ks.type.method&&K.length===2&&pp.is(K[0])?F({token:K[0],value:K[1]}):(N!==void 0&&(N.parameterStructures===Z.ParameterStructures.byName&&n.error(`Notification ${g.method} defines parameters by name but received parameters by position`),N.numberOfParams!==g.params.length&&n.error(`Notification ${g.method} defines ${N.numberOfParams} params but received ${K.length} arguments`)),F(...K))}else N!==void 0&&N.parameterStructures===Z.ParameterStructures.byPosition&&n.error(`Notification ${g.method} defines parameters by position but received parameters by name`),F(g.params);else R&&R(g.method,g.params)}catch(K){K.message?n.error(`Notification handler '${g.method}' failed with message: ${K.message}`):n.error(`Notification handler '${g.method}' failed unexpectedly.`)}else Ce.fire(g)}function hn(g){if(!g){n.error("Received empty message.");return}n.error(`Received message which is neither a response nor a notification message:
8
- ${JSON.stringify(g,null,4)}`);let N=g;if(Oe.string(N.id)||Oe.number(N.id)){let F=N.id,K=Y.get(F);K&&K.reject(new Error("The received response has neither a result nor an error property."))}}function Xt(g){if(g!=null)switch(v){case xe.Verbose:return JSON.stringify(g,null,4);case xe.Compact:return JSON.stringify(g);default:return}}function nl(g){if(!(v===xe.Off||!I))if(D===Ut.Text){let N;(v===xe.Verbose||v===xe.Compact)&&g.params&&(N=`Params: ${Xt(g.params)}
9
-
10
- `),I.log(`Sending request '${g.method} - (${g.id})'.`,N)}else Tr("send-request",g)}function sl(g){if(!(v===xe.Off||!I))if(D===Ut.Text){let N;(v===xe.Verbose||v===xe.Compact)&&(g.params?N=`Params: ${Xt(g.params)}
11
-
12
- `:N=`No parameters provided.
13
-
14
- `),I.log(`Sending notification '${g.method}'.`,N)}else Tr("send-notification",g)}function vi(g,N,F){if(!(v===xe.Off||!I))if(D===Ut.Text){let K;(v===xe.Verbose||v===xe.Compact)&&(g.error&&g.error.data?K=`Error data: ${Xt(g.error.data)}
15
-
16
- `:g.result?K=`Result: ${Xt(g.result)}
17
-
18
- `:g.error===void 0&&(K=`No result returned.
19
-
20
- `)),I.log(`Sending response '${N} - (${g.id})'. Processing request took ${Date.now()-F}ms`,K)}else Tr("send-response",g)}function al(g){if(!(v===xe.Off||!I))if(D===Ut.Text){let N;(v===xe.Verbose||v===xe.Compact)&&g.params&&(N=`Params: ${Xt(g.params)}
21
-
22
- `),I.log(`Received request '${g.method} - (${g.id})'.`,N)}else Tr("receive-request",g)}function dn(g){if(!(v===xe.Off||!I||g.method===El.type.method))if(D===Ut.Text){let N;(v===xe.Verbose||v===xe.Compact)&&(g.params?N=`Params: ${Xt(g.params)}
23
-
24
- `:N=`No parameters provided.
25
-
26
- `),I.log(`Received notification '${g.method}'.`,N)}else Tr("receive-notification",g)}function ol(g,N){if(!(v===xe.Off||!I))if(D===Ut.Text){let F;if((v===xe.Verbose||v===xe.Compact)&&(g.error&&g.error.data?F=`Error data: ${Xt(g.error.data)}
27
-
28
- `:g.result?F=`Result: ${Xt(g.result)}
29
-
30
- `:g.error===void 0&&(F=`No result returned.
31
-
32
- `)),N){let K=g.error?` Request failed: ${g.error.message} (${g.error.code}).`:"";I.log(`Received response '${N.method} - (${g.id})' in ${Date.now()-N.timerStart}ms.${K}`,F)}else I.log(`Received response ${g.id} without active response promise.`,F)}else Tr("receive-response",g)}function Tr(g,N){if(!I||v===xe.Off)return;let F={isLSPMessage:!0,type:g,message:N,timestamp:Date.now()};I.log(F)}function Gr(){if(yi())throw new Cn(Fs.Closed,"Connection is closed.");if(Pr())throw new Cn(Fs.Disposed,"Connection is disposed.")}function ll(){if(Ts())throw new Cn(Fs.AlreadyListening,"Connection is already listening")}function ul(){if(!Ts())throw new Error("Call listen() first.")}function fr(g){return g===void 0?null:g}function Ns(g){if(g!==null)return g}function Us(g){return g!=null&&!Array.isArray(g)&&typeof g=="object"}function pn(g,N){switch(g){case Z.ParameterStructures.auto:return Us(N)?Ns(N):[fr(N)];case Z.ParameterStructures.byName:if(!Us(N))throw new Error("Received parameters by name but param is not an object literal.");return Ns(N);case Z.ParameterStructures.byPosition:return[fr(N)];default:throw new Error(`Unknown parameter structure ${g.toString()}`)}}function ws(g,N){let F,K=g.numberOfParams;switch(K){case 0:F=void 0;break;case 1:F=pn(g.parameterStructures,N[0]);break;default:F=[];for(let Ee=0;Ee<N.length&&Ee<K;Ee++)F.push(fr(N[Ee]));if(N.length<K)for(let Ee=N.length;Ee<K;Ee++)F.push(null);break}return F}let Ar={sendNotification:(g,...N)=>{Gr();let F,K;if(Oe.string(g)){F=g;let Re=N[0],Me=0,we=Z.ParameterStructures.auto;Z.ParameterStructures.is(Re)&&(Me=1,we=Re);let ue=N.length,Se=ue-Me;switch(Se){case 0:K=void 0;break;case 1:K=pn(we,N[Me]);break;default:if(we===Z.ParameterStructures.byName)throw new Error(`Received ${Se} parameters for 'by Name' notification parameter structure.`);K=N.slice(Me,ue).map(fe=>fr(fe));break}}else{let Re=N;F=g.method,K=ws(g,Re)}let Ee={jsonrpc:h,method:F,params:K};return sl(Ee),e.write(Ee).catch(Re=>{throw n.error("Sending notification failed."),Re})},onNotification:(g,N)=>{Gr();let F;return Oe.func(g)?R=g:N&&(Oe.string(g)?(F=g,S.set(g,{type:void 0,handler:N})):(F=g.method,S.set(g.method,{type:g,handler:N}))),{dispose:()=>{F!==void 0?S.delete(F):R=void 0}}},onProgress:(g,N,F)=>{if(M.has(N))throw new Error(`Progress handler for token ${N} already registered`);return M.set(N,F),{dispose:()=>{M.delete(N)}}},sendProgress:(g,N,F)=>Ar.sendNotification(ks.type,{token:N,value:F}),onUnhandledProgress:Mt.event,sendRequest:(g,...N)=>{Gr(),ul();let F,K,Ee;if(Oe.string(g)){F=g;let ue=N[0],Se=N[N.length-1],fe=0,ke=Z.ParameterStructures.auto;Z.ParameterStructures.is(ue)&&(fe=1,ke=ue);let Je=N.length;dp.CancellationToken.is(Se)&&(Je=Je-1,Ee=Se);let Nt=Je-fe;switch(Nt){case 0:K=void 0;break;case 1:K=pn(ke,N[fe]);break;default:if(ke===Z.ParameterStructures.byName)throw new Error(`Received ${Nt} parameters for 'by Name' request parameter structure.`);K=N.slice(fe,Je).map(cl=>fr(cl));break}}else{let ue=N;F=g.method,K=ws(g,ue);let Se=g.numberOfParams;Ee=dp.CancellationToken.is(ue[Se])?ue[Se]:void 0}let Re=a++,Me;Ee&&(Me=Ee.onCancellationRequested(()=>{let ue=Ct.sender.sendCancellation(Ar,Re);return ue===void 0?(n.log(`Received no promise from cancellation strategy when cancelling id ${Re}`),Promise.resolve()):ue.catch(()=>{n.log(`Sending cancellation messages for id ${Re} failed`)})}));let we={jsonrpc:h,id:Re,method:F,params:K};return nl(we),typeof Ct.sender.enableCancellation=="function"&&Ct.sender.enableCancellation(we),new Promise(async(ue,Se)=>{let fe=Nt=>{ue(Nt),Ct.sender.cleanup(Re),Me?.dispose()},ke=Nt=>{Se(Nt),Ct.sender.cleanup(Re),Me?.dispose()},Je={method:F,timerStart:Date.now(),resolve:fe,reject:ke};try{await e.write(we),Y.set(Re,Je)}catch(Nt){throw n.error("Sending request failed."),Je.reject(new Z.ResponseError(Z.ErrorCodes.MessageWriteError,Nt.message?Nt.message:"Unknown reason")),Nt}})},onRequest:(g,N)=>{Gr();let F=null;return mp.is(g)?(F=void 0,f=g):Oe.string(g)?(F=null,N!==void 0&&(F=g,x.set(g,{handler:N,type:void 0}))):N!==void 0&&(F=g.method,x.set(g.method,{type:g,handler:N})),{dispose:()=>{F!==null&&(F!==void 0?x.delete(F):f=void 0)}}},hasPendingResponse:()=>Y.size>0,trace:async(g,N,F)=>{let K=!1,Ee=Ut.Text;F!==void 0&&(Oe.boolean(F)?K=F:(K=F.sendNotification||!1,Ee=F.traceFormat||Ut.Text)),v=g,D=Ee,v===xe.Off?I=void 0:I=N,K&&!yi()&&!Pr()&&await Ar.sendNotification(xp.type,{value:xe.toString(g)})},onError:te.event,onClose:le.event,onUnhandledNotification:Ce.event,onDispose:jr.event,end:()=>{e.end()},dispose:()=>{if(Pr())return;J=tr.Disposed,jr.fire(void 0);let g=new Z.ResponseError(Z.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let N of Y.values())N.reject(g);Y=new Map,L=new Map,z=new Set,W=new V4.LinkedMap,Oe.func(e.dispose)&&e.dispose(),Oe.func(r.dispose)&&r.dispose()},listen:()=>{Gr(),ll(),J=tr.Listening,r.listen(el)},inspect:()=>{(0,_4.default)().console.log("inspect")}};return Ar.onNotification(El.type,g=>{if(v===xe.Off||!I)return;let N=v===xe.Verbose||v===xe.Compact;I.log(g.message,N?g.verbose:void 0)}),Ar.onNotification(ks.type,g=>{let N=M.get(g.token);N?N(g.value):Mt.fire(g)}),Ar}se.createMessageConnection=zR});var Ml=q(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.ProgressType=A.ProgressToken=A.createMessageConnection=A.NullLogger=A.ConnectionOptions=A.ConnectionStrategy=A.AbstractMessageBuffer=A.WriteableStreamMessageWriter=A.AbstractMessageWriter=A.MessageWriter=A.ReadableStreamMessageReader=A.AbstractMessageReader=A.MessageReader=A.SharedArrayReceiverStrategy=A.SharedArraySenderStrategy=A.CancellationToken=A.CancellationTokenSource=A.Emitter=A.Event=A.Disposable=A.LRUCache=A.Touch=A.LinkedMap=A.ParameterStructures=A.NotificationType9=A.NotificationType8=A.NotificationType7=A.NotificationType6=A.NotificationType5=A.NotificationType4=A.NotificationType3=A.NotificationType2=A.NotificationType1=A.NotificationType0=A.NotificationType=A.ErrorCodes=A.ResponseError=A.RequestType9=A.RequestType8=A.RequestType7=A.RequestType6=A.RequestType5=A.RequestType4=A.RequestType3=A.RequestType2=A.RequestType1=A.RequestType0=A.RequestType=A.Message=A.RAL=void 0;A.MessageStrategy=A.CancellationStrategy=A.CancellationSenderStrategy=A.CancellationReceiverStrategy=A.ConnectionError=A.ConnectionErrors=A.LogTraceNotification=A.SetTraceNotification=A.TraceFormat=A.TraceValues=A.Trace=void 0;var Ae=G2();Object.defineProperty(A,"Message",{enumerable:!0,get:function(){return Ae.Message}});Object.defineProperty(A,"RequestType",{enumerable:!0,get:function(){return Ae.RequestType}});Object.defineProperty(A,"RequestType0",{enumerable:!0,get:function(){return Ae.RequestType0}});Object.defineProperty(A,"RequestType1",{enumerable:!0,get:function(){return Ae.RequestType1}});Object.defineProperty(A,"RequestType2",{enumerable:!0,get:function(){return Ae.RequestType2}});Object.defineProperty(A,"RequestType3",{enumerable:!0,get:function(){return Ae.RequestType3}});Object.defineProperty(A,"RequestType4",{enumerable:!0,get:function(){return Ae.RequestType4}});Object.defineProperty(A,"RequestType5",{enumerable:!0,get:function(){return Ae.RequestType5}});Object.defineProperty(A,"RequestType6",{enumerable:!0,get:function(){return Ae.RequestType6}});Object.defineProperty(A,"RequestType7",{enumerable:!0,get:function(){return Ae.RequestType7}});Object.defineProperty(A,"RequestType8",{enumerable:!0,get:function(){return Ae.RequestType8}});Object.defineProperty(A,"RequestType9",{enumerable:!0,get:function(){return Ae.RequestType9}});Object.defineProperty(A,"ResponseError",{enumerable:!0,get:function(){return Ae.ResponseError}});Object.defineProperty(A,"ErrorCodes",{enumerable:!0,get:function(){return Ae.ErrorCodes}});Object.defineProperty(A,"NotificationType",{enumerable:!0,get:function(){return Ae.NotificationType}});Object.defineProperty(A,"NotificationType0",{enumerable:!0,get:function(){return Ae.NotificationType0}});Object.defineProperty(A,"NotificationType1",{enumerable:!0,get:function(){return Ae.NotificationType1}});Object.defineProperty(A,"NotificationType2",{enumerable:!0,get:function(){return Ae.NotificationType2}});Object.defineProperty(A,"NotificationType3",{enumerable:!0,get:function(){return Ae.NotificationType3}});Object.defineProperty(A,"NotificationType4",{enumerable:!0,get:function(){return Ae.NotificationType4}});Object.defineProperty(A,"NotificationType5",{enumerable:!0,get:function(){return Ae.NotificationType5}});Object.defineProperty(A,"NotificationType6",{enumerable:!0,get:function(){return Ae.NotificationType6}});Object.defineProperty(A,"NotificationType7",{enumerable:!0,get:function(){return Ae.NotificationType7}});Object.defineProperty(A,"NotificationType8",{enumerable:!0,get:function(){return Ae.NotificationType8}});Object.defineProperty(A,"NotificationType9",{enumerable:!0,get:function(){return Ae.NotificationType9}});Object.defineProperty(A,"ParameterStructures",{enumerable:!0,get:function(){return Ae.ParameterStructures}});var Rp=z2();Object.defineProperty(A,"LinkedMap",{enumerable:!0,get:function(){return Rp.LinkedMap}});Object.defineProperty(A,"LRUCache",{enumerable:!0,get:function(){return Rp.LRUCache}});Object.defineProperty(A,"Touch",{enumerable:!0,get:function(){return Rp.Touch}});var KR=M4();Object.defineProperty(A,"Disposable",{enumerable:!0,get:function(){return KR.Disposable}});var W4=bn();Object.defineProperty(A,"Event",{enumerable:!0,get:function(){return W4.Event}});Object.defineProperty(A,"Emitter",{enumerable:!0,get:function(){return W4.Emitter}});var z4=gl();Object.defineProperty(A,"CancellationTokenSource",{enumerable:!0,get:function(){return z4.CancellationTokenSource}});Object.defineProperty(A,"CancellationToken",{enumerable:!0,get:function(){return z4.CancellationToken}});var K4=U4();Object.defineProperty(A,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return K4.SharedArraySenderStrategy}});Object.defineProperty(A,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return K4.SharedArrayReceiverStrategy}});var yp=D4();Object.defineProperty(A,"MessageReader",{enumerable:!0,get:function(){return yp.MessageReader}});Object.defineProperty(A,"AbstractMessageReader",{enumerable:!0,get:function(){return yp.AbstractMessageReader}});Object.defineProperty(A,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return yp.ReadableStreamMessageReader}});var Cp=H4();Object.defineProperty(A,"MessageWriter",{enumerable:!0,get:function(){return Cp.MessageWriter}});Object.defineProperty(A,"AbstractMessageWriter",{enumerable:!0,get:function(){return Cp.AbstractMessageWriter}});Object.defineProperty(A,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return Cp.WriteableStreamMessageWriter}});var QR=B4();Object.defineProperty(A,"AbstractMessageBuffer",{enumerable:!0,get:function(){return QR.AbstractMessageBuffer}});var st=G4();Object.defineProperty(A,"ConnectionStrategy",{enumerable:!0,get:function(){return st.ConnectionStrategy}});Object.defineProperty(A,"ConnectionOptions",{enumerable:!0,get:function(){return st.ConnectionOptions}});Object.defineProperty(A,"NullLogger",{enumerable:!0,get:function(){return st.NullLogger}});Object.defineProperty(A,"createMessageConnection",{enumerable:!0,get:function(){return st.createMessageConnection}});Object.defineProperty(A,"ProgressToken",{enumerable:!0,get:function(){return st.ProgressToken}});Object.defineProperty(A,"ProgressType",{enumerable:!0,get:function(){return st.ProgressType}});Object.defineProperty(A,"Trace",{enumerable:!0,get:function(){return st.Trace}});Object.defineProperty(A,"TraceValues",{enumerable:!0,get:function(){return st.TraceValues}});Object.defineProperty(A,"TraceFormat",{enumerable:!0,get:function(){return st.TraceFormat}});Object.defineProperty(A,"SetTraceNotification",{enumerable:!0,get:function(){return st.SetTraceNotification}});Object.defineProperty(A,"LogTraceNotification",{enumerable:!0,get:function(){return st.LogTraceNotification}});Object.defineProperty(A,"ConnectionErrors",{enumerable:!0,get:function(){return st.ConnectionErrors}});Object.defineProperty(A,"ConnectionError",{enumerable:!0,get:function(){return st.ConnectionError}});Object.defineProperty(A,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return st.CancellationReceiverStrategy}});Object.defineProperty(A,"CancellationSenderStrategy",{enumerable:!0,get:function(){return st.CancellationSenderStrategy}});Object.defineProperty(A,"CancellationStrategy",{enumerable:!0,get:function(){return st.CancellationStrategy}});Object.defineProperty(A,"MessageStrategy",{enumerable:!0,get:function(){return st.MessageStrategy}});var $R=zr();A.RAL=$R.default});var Y4=q(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});var Q4=kt("util"),Nr=Ml(),Nl=class r extends Nr.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return r.emptyBuffer}fromString(e,t){return Buffer.from(e,t)}toString(e,t){return e instanceof Buffer?e.toString(t):new Q4.TextDecoder(t).decode(e)}asNative(e,t){return t===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,t):Buffer.from(e,0,t)}allocNative(e){return Buffer.allocUnsafe(e)}};Nl.emptyBuffer=Buffer.allocUnsafe(0);var vp=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Nr.Disposable.create(()=>this.stream.off("data",e))}},Ep=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Nr.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Nr.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Nr.Disposable.create(()=>this.stream.off("end",e))}write(e,t){return new Promise((i,n)=>{let a=o=>{o==null?i():n(o)};typeof e=="string"?this.stream.write(e,t,a):this.stream.write(e,a)})}end(){this.stream.end()}},$4=Object.freeze({messageBuffer:Object.freeze({create:r=>new Nl(r)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(r,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(r,void 0,0),e.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:"application/json",decode:(r,e)=>{try{return r instanceof Buffer?Promise.resolve(JSON.parse(r.toString(e.charset))):Promise.resolve(JSON.parse(new Q4.TextDecoder(e.charset).decode(r)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:r=>new vp(r),asWritableStream:r=>new Ep(r)}),console,timer:Object.freeze({setTimeout(r,e,...t){let i=setTimeout(r,e,...t);return{dispose:()=>clearTimeout(i)}},setImmediate(r,...e){let t=setImmediate(r,...e);return{dispose:()=>clearImmediate(t)}},setInterval(r,e,...t){let i=setInterval(r,e,...t);return{dispose:()=>clearInterval(i)}}})});function Lp(){return $4}(function(r){function e(){Nr.RAL.install($4)}r.install=e})(Lp||(Lp={}));Sp.default=Lp});var Pi=q(de=>{"use strict";var YR=de&&de.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),JR=de&&de.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&YR(e,r,t)};Object.defineProperty(de,"__esModule",{value:!0});de.createMessageConnection=de.createServerSocketTransport=de.createClientSocketTransport=de.createServerPipeTransport=de.createClientPipeTransport=de.generateRandomPipeName=de.StreamMessageWriter=de.StreamMessageReader=de.SocketMessageWriter=de.SocketMessageReader=de.PortMessageWriter=de.PortMessageReader=de.IPCMessageWriter=de.IPCMessageReader=void 0;var vn=Y4();vn.default.install();var J4=kt("path"),XR=kt("os"),ZR=kt("crypto"),Dl=kt("net"),wt=Ml();JR(Ml(),de);var Pp=class extends wt.AbstractMessageReader{constructor(e){super(),this.process=e;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),wt.Disposable.create(()=>this.process.off("message",e))}};de.IPCMessageReader=Pp;var Tp=class extends wt.AbstractMessageWriter{constructor(e){super(),this.process=e,this.errorCount=0;let t=this.process;t.on("error",i=>this.fireError(i)),t.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,t=>{t?(this.errorCount++,this.handleError(t,e)):this.errorCount=0}),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};de.IPCMessageWriter=Tp;var Ap=class extends wt.AbstractMessageReader{constructor(e){super(),this.onData=new wt.Emitter,e.on("close",()=>this.fireClose),e.on("error",t=>this.fireError(t)),e.on("message",t=>{this.onData.fire(t)})}listen(e){return this.onData.event(e)}};de.PortMessageReader=Ap;var Mp=class extends wt.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.on("close",()=>this.fireClose()),e.on("error",t=>this.fireError(t))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};de.PortMessageWriter=Mp;var Li=class extends wt.ReadableStreamMessageReader{constructor(e,t="utf-8"){super((0,vn.default)().stream.asReadableStream(e),t)}};de.SocketMessageReader=Li;var Si=class extends wt.WriteableStreamMessageWriter{constructor(e,t){super((0,vn.default)().stream.asWritableStream(e),t),this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};de.SocketMessageWriter=Si;var Ul=class extends wt.ReadableStreamMessageReader{constructor(e,t){super((0,vn.default)().stream.asReadableStream(e),t)}};de.StreamMessageReader=Ul;var wl=class extends wt.WriteableStreamMessageWriter{constructor(e,t){super((0,vn.default)().stream.asWritableStream(e),t)}};de.StreamMessageWriter=wl;var X4=process.env.XDG_RUNTIME_DIR,e5=new Map([["linux",107],["darwin",103]]);function t5(){let r=(0,ZR.randomBytes)(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${r}-sock`;let e;X4?e=J4.join(X4,`vscode-ipc-${r}.sock`):e=J4.join(XR.tmpdir(),`vscode-${r}.sock`);let t=e5.get(process.platform);return t!==void 0&&e.length>t&&(0,vn.default)().console.warn(`WARNING: IPC handle "${e}" is longer than ${t} characters.`),e}de.generateRandomPipeName=t5;function r5(r,e="utf-8"){let t,i=new Promise((n,a)=>{t=n});return new Promise((n,a)=>{let o=(0,Dl.createServer)(l=>{o.close(),t([new Li(l,e),new Si(l,e)])});o.on("error",a),o.listen(r,()=>{o.removeListener("error",a),n({onConnected:()=>i})})})}de.createClientPipeTransport=r5;function i5(r,e="utf-8"){let t=(0,Dl.createConnection)(r);return[new Li(t,e),new Si(t,e)]}de.createServerPipeTransport=i5;function n5(r,e="utf-8"){let t,i=new Promise((n,a)=>{t=n});return new Promise((n,a)=>{let o=(0,Dl.createServer)(l=>{o.close(),t([new Li(l,e),new Si(l,e)])});o.on("error",a),o.listen(r,"127.0.0.1",()=>{o.removeListener("error",a),n({onConnected:()=>i})})})}de.createClientSocketTransport=n5;function s5(r,e="utf-8"){let t=(0,Dl.createConnection)(r,"127.0.0.1");return[new Li(t,e),new Si(t,e)]}de.createServerSocketTransport=s5;function a5(r){let e=r;return e.read!==void 0&&e.addListener!==void 0}function o5(r){let e=r;return e.write!==void 0&&e.addListener!==void 0}function l5(r,e,t,i){t||(t=wt.NullLogger);let n=a5(r)?new Ul(r):r,a=o5(e)?new wl(e):e;return wt.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,wt.createMessageConnection)(n,a,t,i)}de.createMessageConnection=l5});var Np=q((_7,Z4)=>{"use strict";Z4.exports=Pi()});var Il=q((ef,Ol)=>{(function(r){if(typeof Ol=="object"&&typeof Ol.exports=="object"){var e=r(kt,ef);e!==void 0&&(Ol.exports=e)}else typeof define=="function"&&define.amd&&define(["require","exports"],r)})(function(r,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextDocument=e.EOL=e.WorkspaceFolder=e.InlineCompletionContext=e.SelectedCompletionInfo=e.InlineCompletionTriggerKind=e.InlineCompletionList=e.InlineCompletionItem=e.StringValue=e.InlayHint=e.InlayHintLabelPart=e.InlayHintKind=e.InlineValueContext=e.InlineValueEvaluatableExpression=e.InlineValueVariableLookup=e.InlineValueText=e.SemanticTokens=e.SemanticTokenModifiers=e.SemanticTokenTypes=e.SelectionRange=e.DocumentLink=e.FormattingOptions=e.CodeLens=e.CodeAction=e.CodeActionContext=e.CodeActionTriggerKind=e.CodeActionKind=e.DocumentSymbol=e.WorkspaceSymbol=e.SymbolInformation=e.SymbolTag=e.SymbolKind=e.DocumentHighlight=e.DocumentHighlightKind=e.SignatureInformation=e.ParameterInformation=e.Hover=e.MarkedString=e.CompletionList=e.CompletionItem=e.CompletionItemLabelDetails=e.InsertTextMode=e.InsertReplaceEdit=e.CompletionItemTag=e.InsertTextFormat=e.CompletionItemKind=e.MarkupContent=e.MarkupKind=e.TextDocumentItem=e.OptionalVersionedTextDocumentIdentifier=e.VersionedTextDocumentIdentifier=e.TextDocumentIdentifier=e.WorkspaceChange=e.WorkspaceEdit=e.DeleteFile=e.RenameFile=e.CreateFile=e.TextDocumentEdit=e.AnnotatedTextEdit=e.ChangeAnnotationIdentifier=e.ChangeAnnotation=e.TextEdit=e.Command=e.Diagnostic=e.CodeDescription=e.DiagnosticTag=e.DiagnosticSeverity=e.DiagnosticRelatedInformation=e.FoldingRange=e.FoldingRangeKind=e.ColorPresentation=e.ColorInformation=e.Color=e.LocationLink=e.Location=e.Range=e.Position=e.uinteger=e.integer=e.URI=e.DocumentUri=void 0;var t;(function(p){function y(C){return typeof C=="string"}p.is=y})(t||(e.DocumentUri=t={}));var i;(function(p){function y(C){return typeof C=="string"}p.is=y})(i||(e.URI=i={}));var n;(function(p){p.MIN_VALUE=-2147483648,p.MAX_VALUE=2147483647;function y(C){return typeof C=="number"&&p.MIN_VALUE<=C&&C<=p.MAX_VALUE}p.is=y})(n||(e.integer=n={}));var a;(function(p){p.MIN_VALUE=0,p.MAX_VALUE=2147483647;function y(C){return typeof C=="number"&&p.MIN_VALUE<=C&&C<=p.MAX_VALUE}p.is=y})(a||(e.uinteger=a={}));var o;(function(p){function y(m,d){return m===Number.MAX_VALUE&&(m=a.MAX_VALUE),d===Number.MAX_VALUE&&(d=a.MAX_VALUE),{line:m,character:d}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&T.uinteger(d.line)&&T.uinteger(d.character)}p.is=C})(o||(e.Position=o={}));var l;(function(p){function y(m,d,P,U){if(T.uinteger(m)&&T.uinteger(d)&&T.uinteger(P)&&T.uinteger(U))return{start:o.create(m,d),end:o.create(P,U)};if(o.is(m)&&o.is(d))return{start:m,end:d};throw new Error("Range#create called with invalid arguments[".concat(m,", ").concat(d,", ").concat(P,", ").concat(U,"]"))}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&o.is(d.start)&&o.is(d.end)}p.is=C})(l||(e.Range=l={}));var h;(function(p){function y(m,d){return{uri:m,range:d}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&l.is(d.range)&&(T.string(d.uri)||T.undefined(d.uri))}p.is=C})(h||(e.Location=h={}));var f;(function(p){function y(m,d,P,U){return{targetUri:m,targetRange:d,targetSelectionRange:P,originSelectionRange:U}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&l.is(d.targetRange)&&T.string(d.targetUri)&&l.is(d.targetSelectionRange)&&(l.is(d.originSelectionRange)||T.undefined(d.originSelectionRange))}p.is=C})(f||(e.LocationLink=f={}));var x;(function(p){function y(m,d,P,U){return{red:m,green:d,blue:P,alpha:U}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&T.numberRange(d.red,0,1)&&T.numberRange(d.green,0,1)&&T.numberRange(d.blue,0,1)&&T.numberRange(d.alpha,0,1)}p.is=C})(x||(e.Color=x={}));var R;(function(p){function y(m,d){return{range:m,color:d}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&l.is(d.range)&&x.is(d.color)}p.is=C})(R||(e.ColorInformation=R={}));var S;(function(p){function y(m,d,P){return{label:m,textEdit:d,additionalTextEdits:P}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&T.string(d.label)&&(T.undefined(d.textEdit)||I.is(d))&&(T.undefined(d.additionalTextEdits)||T.typedArray(d.additionalTextEdits,I.is))}p.is=C})(S||(e.ColorPresentation=S={}));var M;(function(p){p.Comment="comment",p.Imports="imports",p.Region="region"})(M||(e.FoldingRangeKind=M={}));var O;(function(p){function y(m,d,P,U,ne,Fe){var Te={startLine:m,endLine:d};return T.defined(P)&&(Te.startCharacter=P),T.defined(U)&&(Te.endCharacter=U),T.defined(ne)&&(Te.kind=ne),T.defined(Fe)&&(Te.collapsedText=Fe),Te}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&T.uinteger(d.startLine)&&T.uinteger(d.startLine)&&(T.undefined(d.startCharacter)||T.uinteger(d.startCharacter))&&(T.undefined(d.endCharacter)||T.uinteger(d.endCharacter))&&(T.undefined(d.kind)||T.string(d.kind))}p.is=C})(O||(e.FoldingRange=O={}));var W;(function(p){function y(m,d){return{location:m,message:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&h.is(d.location)&&T.string(d.message)}p.is=C})(W||(e.DiagnosticRelatedInformation=W={}));var Y;(function(p){p.Error=1,p.Warning=2,p.Information=3,p.Hint=4})(Y||(e.DiagnosticSeverity=Y={}));var z;(function(p){p.Unnecessary=1,p.Deprecated=2})(z||(e.DiagnosticTag=z={}));var L;(function(p){function y(C){var m=C;return T.objectLiteral(m)&&T.string(m.href)}p.is=y})(L||(e.CodeDescription=L={}));var v;(function(p){function y(m,d,P,U,ne,Fe){var Te={range:m,message:d};return T.defined(P)&&(Te.severity=P),T.defined(U)&&(Te.code=U),T.defined(ne)&&(Te.source=ne),T.defined(Fe)&&(Te.relatedInformation=Fe),Te}p.create=y;function C(m){var d,P=m;return T.defined(P)&&l.is(P.range)&&T.string(P.message)&&(T.number(P.severity)||T.undefined(P.severity))&&(T.integer(P.code)||T.string(P.code)||T.undefined(P.code))&&(T.undefined(P.codeDescription)||T.string((d=P.codeDescription)===null||d===void 0?void 0:d.href))&&(T.string(P.source)||T.undefined(P.source))&&(T.undefined(P.relatedInformation)||T.typedArray(P.relatedInformation,W.is))}p.is=C})(v||(e.Diagnostic=v={}));var D;(function(p){function y(m,d){for(var P=[],U=2;U<arguments.length;U++)P[U-2]=arguments[U];var ne={title:m,command:d};return T.defined(P)&&P.length>0&&(ne.arguments=P),ne}p.create=y;function C(m){var d=m;return T.defined(d)&&T.string(d.title)&&T.string(d.command)}p.is=C})(D||(e.Command=D={}));var I;(function(p){function y(P,U){return{range:P,newText:U}}p.replace=y;function C(P,U){return{range:{start:P,end:P},newText:U}}p.insert=C;function m(P){return{range:P,newText:""}}p.del=m;function d(P){var U=P;return T.objectLiteral(U)&&T.string(U.newText)&&l.is(U.range)}p.is=d})(I||(e.TextEdit=I={}));var J;(function(p){function y(m,d,P){var U={label:m};return d!==void 0&&(U.needsConfirmation=d),P!==void 0&&(U.description=P),U}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&T.string(d.label)&&(T.boolean(d.needsConfirmation)||d.needsConfirmation===void 0)&&(T.string(d.description)||d.description===void 0)}p.is=C})(J||(e.ChangeAnnotation=J={}));var te;(function(p){function y(C){var m=C;return T.string(m)}p.is=y})(te||(e.ChangeAnnotationIdentifier=te={}));var le;(function(p){function y(P,U,ne){return{range:P,newText:U,annotationId:ne}}p.replace=y;function C(P,U,ne){return{range:{start:P,end:P},newText:U,annotationId:ne}}p.insert=C;function m(P,U){return{range:P,newText:"",annotationId:U}}p.del=m;function d(P){var U=P;return I.is(U)&&(J.is(U.annotationId)||te.is(U.annotationId))}p.is=d})(le||(e.AnnotatedTextEdit=le={}));var Ce;(function(p){function y(m,d){return{textDocument:m,edits:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&yi.is(d.textDocument)&&Array.isArray(d.edits)}p.is=C})(Ce||(e.TextDocumentEdit=Ce={}));var Mt;(function(p){function y(m,d,P){var U={kind:"create",uri:m};return d!==void 0&&(d.overwrite!==void 0||d.ignoreIfExists!==void 0)&&(U.options=d),P!==void 0&&(U.annotationId=P),U}p.create=y;function C(m){var d=m;return d&&d.kind==="create"&&T.string(d.uri)&&(d.options===void 0||(d.options.overwrite===void 0||T.boolean(d.options.overwrite))&&(d.options.ignoreIfExists===void 0||T.boolean(d.options.ignoreIfExists)))&&(d.annotationId===void 0||te.is(d.annotationId))}p.is=C})(Mt||(e.CreateFile=Mt={}));var jr;(function(p){function y(m,d,P,U){var ne={kind:"rename",oldUri:m,newUri:d};return P!==void 0&&(P.overwrite!==void 0||P.ignoreIfExists!==void 0)&&(ne.options=P),U!==void 0&&(ne.annotationId=U),ne}p.create=y;function C(m){var d=m;return d&&d.kind==="rename"&&T.string(d.oldUri)&&T.string(d.newUri)&&(d.options===void 0||(d.options.overwrite===void 0||T.boolean(d.options.overwrite))&&(d.options.ignoreIfExists===void 0||T.boolean(d.options.ignoreIfExists)))&&(d.annotationId===void 0||te.is(d.annotationId))}p.is=C})(jr||(e.RenameFile=jr={}));var Ct;(function(p){function y(m,d,P){var U={kind:"delete",uri:m};return d!==void 0&&(d.recursive!==void 0||d.ignoreIfNotExists!==void 0)&&(U.options=d),P!==void 0&&(U.annotationId=P),U}p.create=y;function C(m){var d=m;return d&&d.kind==="delete"&&T.string(d.uri)&&(d.options===void 0||(d.options.recursive===void 0||T.boolean(d.options.recursive))&&(d.options.ignoreIfNotExists===void 0||T.boolean(d.options.ignoreIfNotExists)))&&(d.annotationId===void 0||te.is(d.annotationId))}p.is=C})(Ct||(e.DeleteFile=Ct={}));var ln;(function(p){function y(C){var m=C;return m&&(m.changes!==void 0||m.documentChanges!==void 0)&&(m.documentChanges===void 0||m.documentChanges.every(function(d){return T.string(d.kind)?Mt.is(d)||jr.is(d)||Ct.is(d):Ce.is(d)}))}p.is=y})(ln||(e.WorkspaceEdit=ln={}));var un=(function(){function p(y,C){this.edits=y,this.changeAnnotations=C}return p.prototype.insert=function(y,C,m){var d,P;if(m===void 0?d=I.insert(y,C):te.is(m)?(P=m,d=le.insert(y,C,m)):(this.assertChangeAnnotations(this.changeAnnotations),P=this.changeAnnotations.manage(m),d=le.insert(y,C,P)),this.edits.push(d),P!==void 0)return P},p.prototype.replace=function(y,C,m){var d,P;if(m===void 0?d=I.replace(y,C):te.is(m)?(P=m,d=le.replace(y,C,m)):(this.assertChangeAnnotations(this.changeAnnotations),P=this.changeAnnotations.manage(m),d=le.replace(y,C,P)),this.edits.push(d),P!==void 0)return P},p.prototype.delete=function(y,C){var m,d;if(C===void 0?m=I.del(y):te.is(C)?(d=C,m=le.del(y,C)):(this.assertChangeAnnotations(this.changeAnnotations),d=this.changeAnnotations.manage(C),m=le.del(y,d)),this.edits.push(m),d!==void 0)return d},p.prototype.add=function(y){this.edits.push(y)},p.prototype.all=function(){return this.edits},p.prototype.clear=function(){this.edits.splice(0,this.edits.length)},p.prototype.assertChangeAnnotations=function(y){if(y===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},p})(),Yo=(function(){function p(y){this._annotations=y===void 0?Object.create(null):y,this._counter=0,this._size=0}return p.prototype.all=function(){return this._annotations},Object.defineProperty(p.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),p.prototype.manage=function(y,C){var m;if(te.is(y)?m=y:(m=this.nextId(),C=y),this._annotations[m]!==void 0)throw new Error("Id ".concat(m," is already in use."));if(C===void 0)throw new Error("No annotation provided for id ".concat(m));return this._annotations[m]=C,this._size++,m},p.prototype.nextId=function(){return this._counter++,this._counter.toString()},p})(),R2=(function(){function p(y){var C=this;this._textEditChanges=Object.create(null),y!==void 0?(this._workspaceEdit=y,y.documentChanges?(this._changeAnnotations=new Yo(y.changeAnnotations),y.changeAnnotations=this._changeAnnotations.all(),y.documentChanges.forEach(function(m){if(Ce.is(m)){var d=new un(m.edits,C._changeAnnotations);C._textEditChanges[m.textDocument.uri]=d}})):y.changes&&Object.keys(y.changes).forEach(function(m){var d=new un(y.changes[m]);C._textEditChanges[m]=d})):this._workspaceEdit={}}return Object.defineProperty(p.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),p.prototype.getTextEditChange=function(y){if(yi.is(y)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var C={uri:y.uri,version:y.version},m=this._textEditChanges[C.uri];if(!m){var d=[],P={textDocument:C,edits:d};this._workspaceEdit.documentChanges.push(P),m=new un(d,this._changeAnnotations),this._textEditChanges[C.uri]=m}return m}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var m=this._textEditChanges[y];if(!m){var d=[];this._workspaceEdit.changes[y]=d,m=new un(d),this._textEditChanges[y]=m}return m}},p.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new Yo,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},p.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},p.prototype.createFile=function(y,C,m){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var d;J.is(C)||te.is(C)?d=C:m=C;var P,U;if(d===void 0?P=Mt.create(y,m):(U=te.is(d)?d:this._changeAnnotations.manage(d),P=Mt.create(y,m,U)),this._workspaceEdit.documentChanges.push(P),U!==void 0)return U},p.prototype.renameFile=function(y,C,m,d){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var P;J.is(m)||te.is(m)?P=m:d=m;var U,ne;if(P===void 0?U=jr.create(y,C,d):(ne=te.is(P)?P:this._changeAnnotations.manage(P),U=jr.create(y,C,d,ne)),this._workspaceEdit.documentChanges.push(U),ne!==void 0)return ne},p.prototype.deleteFile=function(y,C,m){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var d;J.is(C)||te.is(C)?d=C:m=C;var P,U;if(d===void 0?P=Ct.create(y,m):(U=te.is(d)?d:this._changeAnnotations.manage(d),P=Ct.create(y,m,U)),this._workspaceEdit.documentChanges.push(P),U!==void 0)return U},p})();e.WorkspaceChange=R2;var Jo;(function(p){function y(m){return{uri:m}}p.create=y;function C(m){var d=m;return T.defined(d)&&T.string(d.uri)}p.is=C})(Jo||(e.TextDocumentIdentifier=Jo={}));var Ts;(function(p){function y(m,d){return{uri:m,version:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&T.string(d.uri)&&T.integer(d.version)}p.is=C})(Ts||(e.VersionedTextDocumentIdentifier=Ts={}));var yi;(function(p){function y(m,d){return{uri:m,version:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&T.string(d.uri)&&(d.version===null||T.integer(d.version))}p.is=C})(yi||(e.OptionalVersionedTextDocumentIdentifier=yi={}));var Pr;(function(p){function y(m,d,P,U){return{uri:m,languageId:d,version:P,text:U}}p.create=y;function C(m){var d=m;return T.defined(d)&&T.string(d.uri)&&T.string(d.languageId)&&T.integer(d.version)&&T.string(d.text)}p.is=C})(Pr||(e.TextDocumentItem=Pr={}));var cn;(function(p){p.PlainText="plaintext",p.Markdown="markdown";function y(C){var m=C;return m===p.PlainText||m===p.Markdown}p.is=y})(cn||(e.MarkupKind=cn={}));var Ci;(function(p){function y(C){var m=C;return T.objectLiteral(C)&&cn.is(m.kind)&&T.string(m.value)}p.is=y})(Ci||(e.MarkupContent=Ci={}));var Xo;(function(p){p.Text=1,p.Method=2,p.Function=3,p.Constructor=4,p.Field=5,p.Variable=6,p.Class=7,p.Interface=8,p.Module=9,p.Property=10,p.Unit=11,p.Value=12,p.Enum=13,p.Keyword=14,p.Snippet=15,p.Color=16,p.File=17,p.Reference=18,p.Folder=19,p.EnumMember=20,p.Constant=21,p.Struct=22,p.Event=23,p.Operator=24,p.TypeParameter=25})(Xo||(e.CompletionItemKind=Xo={}));var As;(function(p){p.PlainText=1,p.Snippet=2})(As||(e.InsertTextFormat=As={}));var Ms;(function(p){p.Deprecated=1})(Ms||(e.CompletionItemTag=Ms={}));var Zo;(function(p){function y(m,d,P){return{newText:m,insert:d,replace:P}}p.create=y;function C(m){var d=m;return d&&T.string(d.newText)&&l.is(d.insert)&&l.is(d.replace)}p.is=C})(Zo||(e.InsertReplaceEdit=Zo={}));var el;(function(p){p.asIs=1,p.adjustIndentation=2})(el||(e.InsertTextMode=el={}));var tl;(function(p){function y(C){var m=C;return m&&(T.string(m.detail)||m.detail===void 0)&&(T.string(m.description)||m.description===void 0)}p.is=y})(tl||(e.CompletionItemLabelDetails=tl={}));var rl;(function(p){function y(C){return{label:C}}p.create=y})(rl||(e.CompletionItem=rl={}));var il;(function(p){function y(C,m){return{items:C||[],isIncomplete:!!m}}p.create=y})(il||(e.CompletionList=il={}));var hn;(function(p){function y(m){return m.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}p.fromPlainText=y;function C(m){var d=m;return T.string(d)||T.objectLiteral(d)&&T.string(d.language)&&T.string(d.value)}p.is=C})(hn||(e.MarkedString=hn={}));var Xt;(function(p){function y(C){var m=C;return!!m&&T.objectLiteral(m)&&(Ci.is(m.contents)||hn.is(m.contents)||T.typedArray(m.contents,hn.is))&&(C.range===void 0||l.is(C.range))}p.is=y})(Xt||(e.Hover=Xt={}));var nl;(function(p){function y(C,m){return m?{label:C,documentation:m}:{label:C}}p.create=y})(nl||(e.ParameterInformation=nl={}));var sl;(function(p){function y(C,m){for(var d=[],P=2;P<arguments.length;P++)d[P-2]=arguments[P];var U={label:C};return T.defined(m)&&(U.documentation=m),T.defined(d)?U.parameters=d:U.parameters=[],U}p.create=y})(sl||(e.SignatureInformation=sl={}));var vi;(function(p){p.Text=1,p.Read=2,p.Write=3})(vi||(e.DocumentHighlightKind=vi={}));var al;(function(p){function y(C,m){var d={range:C};return T.number(m)&&(d.kind=m),d}p.create=y})(al||(e.DocumentHighlight=al={}));var dn;(function(p){p.File=1,p.Module=2,p.Namespace=3,p.Package=4,p.Class=5,p.Method=6,p.Property=7,p.Field=8,p.Constructor=9,p.Enum=10,p.Interface=11,p.Function=12,p.Variable=13,p.Constant=14,p.String=15,p.Number=16,p.Boolean=17,p.Array=18,p.Object=19,p.Key=20,p.Null=21,p.EnumMember=22,p.Struct=23,p.Event=24,p.Operator=25,p.TypeParameter=26})(dn||(e.SymbolKind=dn={}));var ol;(function(p){p.Deprecated=1})(ol||(e.SymbolTag=ol={}));var Tr;(function(p){function y(C,m,d,P,U){var ne={name:C,kind:m,location:{uri:P,range:d}};return U&&(ne.containerName=U),ne}p.create=y})(Tr||(e.SymbolInformation=Tr={}));var Gr;(function(p){function y(C,m,d,P){return P!==void 0?{name:C,kind:m,location:{uri:d,range:P}}:{name:C,kind:m,location:{uri:d}}}p.create=y})(Gr||(e.WorkspaceSymbol=Gr={}));var ll;(function(p){function y(m,d,P,U,ne,Fe){var Te={name:m,detail:d,kind:P,range:U,selectionRange:ne};return Fe!==void 0&&(Te.children=Fe),Te}p.create=y;function C(m){var d=m;return d&&T.string(d.name)&&T.number(d.kind)&&l.is(d.range)&&l.is(d.selectionRange)&&(d.detail===void 0||T.string(d.detail))&&(d.deprecated===void 0||T.boolean(d.deprecated))&&(d.children===void 0||Array.isArray(d.children))&&(d.tags===void 0||Array.isArray(d.tags))}p.is=C})(ll||(e.DocumentSymbol=ll={}));var ul;(function(p){p.Empty="",p.QuickFix="quickfix",p.Refactor="refactor",p.RefactorExtract="refactor.extract",p.RefactorInline="refactor.inline",p.RefactorRewrite="refactor.rewrite",p.Source="source",p.SourceOrganizeImports="source.organizeImports",p.SourceFixAll="source.fixAll"})(ul||(e.CodeActionKind=ul={}));var fr;(function(p){p.Invoked=1,p.Automatic=2})(fr||(e.CodeActionTriggerKind=fr={}));var Ns;(function(p){function y(m,d,P){var U={diagnostics:m};return d!=null&&(U.only=d),P!=null&&(U.triggerKind=P),U}p.create=y;function C(m){var d=m;return T.defined(d)&&T.typedArray(d.diagnostics,v.is)&&(d.only===void 0||T.typedArray(d.only,T.string))&&(d.triggerKind===void 0||d.triggerKind===fr.Invoked||d.triggerKind===fr.Automatic)}p.is=C})(Ns||(e.CodeActionContext=Ns={}));var Us;(function(p){function y(m,d,P){var U={title:m},ne=!0;return typeof d=="string"?(ne=!1,U.kind=d):D.is(d)?U.command=d:U.edit=d,ne&&P!==void 0&&(U.kind=P),U}p.create=y;function C(m){var d=m;return d&&T.string(d.title)&&(d.diagnostics===void 0||T.typedArray(d.diagnostics,v.is))&&(d.kind===void 0||T.string(d.kind))&&(d.edit!==void 0||d.command!==void 0)&&(d.command===void 0||D.is(d.command))&&(d.isPreferred===void 0||T.boolean(d.isPreferred))&&(d.edit===void 0||ln.is(d.edit))}p.is=C})(Us||(e.CodeAction=Us={}));var pn;(function(p){function y(m,d){var P={range:m};return T.defined(d)&&(P.data=d),P}p.create=y;function C(m){var d=m;return T.defined(d)&&l.is(d.range)&&(T.undefined(d.command)||D.is(d.command))}p.is=C})(pn||(e.CodeLens=pn={}));var ws;(function(p){function y(m,d){return{tabSize:m,insertSpaces:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&T.uinteger(d.tabSize)&&T.boolean(d.insertSpaces)}p.is=C})(ws||(e.FormattingOptions=ws={}));var Ar;(function(p){function y(m,d,P){return{range:m,target:d,data:P}}p.create=y;function C(m){var d=m;return T.defined(d)&&l.is(d.range)&&(T.undefined(d.target)||T.string(d.target))}p.is=C})(Ar||(e.DocumentLink=Ar={}));var g;(function(p){function y(m,d){return{range:m,parent:d}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&l.is(d.range)&&(d.parent===void 0||p.is(d.parent))}p.is=C})(g||(e.SelectionRange=g={}));var N;(function(p){p.namespace="namespace",p.type="type",p.class="class",p.enum="enum",p.interface="interface",p.struct="struct",p.typeParameter="typeParameter",p.parameter="parameter",p.variable="variable",p.property="property",p.enumMember="enumMember",p.event="event",p.function="function",p.method="method",p.macro="macro",p.keyword="keyword",p.modifier="modifier",p.comment="comment",p.string="string",p.number="number",p.regexp="regexp",p.operator="operator",p.decorator="decorator"})(N||(e.SemanticTokenTypes=N={}));var F;(function(p){p.declaration="declaration",p.definition="definition",p.readonly="readonly",p.static="static",p.deprecated="deprecated",p.abstract="abstract",p.async="async",p.modification="modification",p.documentation="documentation",p.defaultLibrary="defaultLibrary"})(F||(e.SemanticTokenModifiers=F={}));var K;(function(p){function y(C){var m=C;return T.objectLiteral(m)&&(m.resultId===void 0||typeof m.resultId=="string")&&Array.isArray(m.data)&&(m.data.length===0||typeof m.data[0]=="number")}p.is=y})(K||(e.SemanticTokens=K={}));var Ee;(function(p){function y(m,d){return{range:m,text:d}}p.create=y;function C(m){var d=m;return d!=null&&l.is(d.range)&&T.string(d.text)}p.is=C})(Ee||(e.InlineValueText=Ee={}));var Re;(function(p){function y(m,d,P){return{range:m,variableName:d,caseSensitiveLookup:P}}p.create=y;function C(m){var d=m;return d!=null&&l.is(d.range)&&T.boolean(d.caseSensitiveLookup)&&(T.string(d.variableName)||d.variableName===void 0)}p.is=C})(Re||(e.InlineValueVariableLookup=Re={}));var Me;(function(p){function y(m,d){return{range:m,expression:d}}p.create=y;function C(m){var d=m;return d!=null&&l.is(d.range)&&(T.string(d.expression)||d.expression===void 0)}p.is=C})(Me||(e.InlineValueEvaluatableExpression=Me={}));var we;(function(p){function y(m,d){return{frameId:m,stoppedLocation:d}}p.create=y;function C(m){var d=m;return T.defined(d)&&l.is(m.stoppedLocation)}p.is=C})(we||(e.InlineValueContext=we={}));var ue;(function(p){p.Type=1,p.Parameter=2;function y(C){return C===1||C===2}p.is=y})(ue||(e.InlayHintKind=ue={}));var Se;(function(p){function y(m){return{value:m}}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&(d.tooltip===void 0||T.string(d.tooltip)||Ci.is(d.tooltip))&&(d.location===void 0||h.is(d.location))&&(d.command===void 0||D.is(d.command))}p.is=C})(Se||(e.InlayHintLabelPart=Se={}));var fe;(function(p){function y(m,d,P){var U={position:m,label:d};return P!==void 0&&(U.kind=P),U}p.create=y;function C(m){var d=m;return T.objectLiteral(d)&&o.is(d.position)&&(T.string(d.label)||T.typedArray(d.label,Se.is))&&(d.kind===void 0||ue.is(d.kind))&&d.textEdits===void 0||T.typedArray(d.textEdits,I.is)&&(d.tooltip===void 0||T.string(d.tooltip)||Ci.is(d.tooltip))&&(d.paddingLeft===void 0||T.boolean(d.paddingLeft))&&(d.paddingRight===void 0||T.boolean(d.paddingRight))}p.is=C})(fe||(e.InlayHint=fe={}));var ke;(function(p){function y(C){return{kind:"snippet",value:C}}p.createSnippet=y})(ke||(e.StringValue=ke={}));var Je;(function(p){function y(C,m,d,P){return{insertText:C,filterText:m,range:d,command:P}}p.create=y})(Je||(e.InlineCompletionItem=Je={}));var Nt;(function(p){function y(C){return{items:C}}p.create=y})(Nt||(e.InlineCompletionList=Nt={}));var cl;(function(p){p.Invoked=0,p.Automatic=1})(cl||(e.InlineCompletionTriggerKind=cl={}));var m4;(function(p){function y(C,m){return{range:C,text:m}}p.create=y})(m4||(e.SelectedCompletionInfo=m4={}));var x4;(function(p){function y(C,m){return{triggerKind:C,selectedCompletionInfo:m}}p.create=y})(x4||(e.InlineCompletionContext=x4={}));var b4;(function(p){function y(C){var m=C;return T.objectLiteral(m)&&i.is(m.uri)&&T.string(m.name)}p.is=y})(b4||(e.WorkspaceFolder=b4={})),e.EOL=[`
33
- `,`\r
34
- `,"\r"];var g4;(function(p){function y(P,U,ne,Fe){return new xR(P,U,ne,Fe)}p.create=y;function C(P){var U=P;return!!(T.defined(U)&&T.string(U.uri)&&(T.undefined(U.languageId)||T.string(U.languageId))&&T.uinteger(U.lineCount)&&T.func(U.getText)&&T.func(U.positionAt)&&T.func(U.offsetAt))}p.is=C;function m(P,U){for(var ne=P.getText(),Fe=d(U,function(fn,hl){var R4=fn.range.start.line-hl.range.start.line;return R4===0?fn.range.start.character-hl.range.start.character:R4}),Te=ne.length,Zt=Fe.length-1;Zt>=0;Zt--){var er=Fe[Zt],Mr=P.offsetAt(er.range.start),he=P.offsetAt(er.range.end);if(he<=Te)ne=ne.substring(0,Mr)+er.newText+ne.substring(he,ne.length);else throw new Error("Overlapping edit");Te=Mr}return ne}p.applyEdits=m;function d(P,U){if(P.length<=1)return P;var ne=P.length/2|0,Fe=P.slice(0,ne),Te=P.slice(ne);d(Fe,U),d(Te,U);for(var Zt=0,er=0,Mr=0;Zt<Fe.length&&er<Te.length;){var he=U(Fe[Zt],Te[er]);he<=0?P[Mr++]=Fe[Zt++]:P[Mr++]=Te[er++]}for(;Zt<Fe.length;)P[Mr++]=Fe[Zt++];for(;er<Te.length;)P[Mr++]=Te[er++];return P}})(g4||(e.TextDocument=g4={}));var xR=(function(){function p(y,C,m,d){this._uri=y,this._languageId=C,this._version=m,this._content=d,this._lineOffsets=void 0}return Object.defineProperty(p.prototype,"uri",{get:function(){return this._uri},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"languageId",{get:function(){return this._languageId},enumerable:!1,configurable:!0}),Object.defineProperty(p.prototype,"version",{get:function(){return this._version},enumerable:!1,configurable:!0}),p.prototype.getText=function(y){if(y){var C=this.offsetAt(y.start),m=this.offsetAt(y.end);return this._content.substring(C,m)}return this._content},p.prototype.update=function(y,C){this._content=y.text,this._version=C,this._lineOffsets=void 0},p.prototype.getLineOffsets=function(){if(this._lineOffsets===void 0){for(var y=[],C=this._content,m=!0,d=0;d<C.length;d++){m&&(y.push(d),m=!1);var P=C.charAt(d);m=P==="\r"||P===`
35
- `,P==="\r"&&d+1<C.length&&C.charAt(d+1)===`
36
- `&&d++}m&&C.length>0&&y.push(C.length),this._lineOffsets=y}return this._lineOffsets},p.prototype.positionAt=function(y){y=Math.max(Math.min(y,this._content.length),0);var C=this.getLineOffsets(),m=0,d=C.length;if(d===0)return o.create(0,y);for(;m<d;){var P=Math.floor((m+d)/2);C[P]>y?d=P:m=P+1}var U=m-1;return o.create(U,y-C[U])},p.prototype.offsetAt=function(y){var C=this.getLineOffsets();if(y.line>=C.length)return this._content.length;if(y.line<0)return 0;var m=C[y.line],d=y.line+1<C.length?C[y.line+1]:this._content.length;return Math.max(Math.min(m+y.character,d),m)},Object.defineProperty(p.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),p})(),T;(function(p){var y=Object.prototype.toString;function C(he){return typeof he<"u"}p.defined=C;function m(he){return typeof he>"u"}p.undefined=m;function d(he){return he===!0||he===!1}p.boolean=d;function P(he){return y.call(he)==="[object String]"}p.string=P;function U(he){return y.call(he)==="[object Number]"}p.number=U;function ne(he,fn,hl){return y.call(he)==="[object Number]"&&fn<=he&&he<=hl}p.numberRange=ne;function Fe(he){return y.call(he)==="[object Number]"&&-2147483648<=he&&he<=2147483647}p.integer=Fe;function Te(he){return y.call(he)==="[object Number]"&&0<=he&&he<=2147483647}p.uinteger=Te;function Zt(he){return y.call(he)==="[object Function]"}p.func=Zt;function er(he){return he!==null&&typeof he=="object"}p.objectLiteral=er;function Mr(he,fn){return Array.isArray(he)&&he.every(fn)}p.typedArray=Mr})(T||(T={}))})});var De=q(Lt=>{"use strict";Object.defineProperty(Lt,"__esModule",{value:!0});Lt.ProtocolNotificationType=Lt.ProtocolNotificationType0=Lt.ProtocolRequestType=Lt.ProtocolRequestType0=Lt.RegistrationType=Lt.MessageDirection=void 0;var En=Pi(),tf;(function(r){r.clientToServer="clientToServer",r.serverToClient="serverToClient",r.both="both"})(tf||(Lt.MessageDirection=tf={}));var Up=class{constructor(e){this.method=e}};Lt.RegistrationType=Up;var wp=class extends En.RequestType0{constructor(e){super(e)}};Lt.ProtocolRequestType0=wp;var Dp=class extends En.RequestType{constructor(e){super(e,En.ParameterStructures.byName)}};Lt.ProtocolRequestType=Dp;var Op=class extends En.NotificationType0{constructor(e){super(e)}};Lt.ProtocolNotificationType0=Op;var Ip=class extends En.NotificationType{constructor(e){super(e,En.ParameterStructures.byName)}};Lt.ProtocolNotificationType=Ip});var kl=q(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.objectLiteral=We.typedArray=We.stringArray=We.array=We.func=We.error=We.number=We.string=We.boolean=void 0;function u5(r){return r===!0||r===!1}We.boolean=u5;function rf(r){return typeof r=="string"||r instanceof String}We.string=rf;function c5(r){return typeof r=="number"||r instanceof Number}We.number=c5;function h5(r){return r instanceof Error}We.error=h5;function d5(r){return typeof r=="function"}We.func=d5;function nf(r){return Array.isArray(r)}We.array=nf;function p5(r){return nf(r)&&r.every(e=>rf(e))}We.stringArray=p5;function f5(r,e){return Array.isArray(r)&&r.every(e)}We.typedArray=f5;function m5(r){return r!==null&&typeof r=="object"}We.objectLiteral=m5});var of=q(Fl=>{"use strict";Object.defineProperty(Fl,"__esModule",{value:!0});Fl.ImplementationRequest=void 0;var sf=De(),af;(function(r){r.method="textDocument/implementation",r.messageDirection=sf.MessageDirection.clientToServer,r.type=new sf.ProtocolRequestType(r.method)})(af||(Fl.ImplementationRequest=af={}))});var cf=q(Hl=>{"use strict";Object.defineProperty(Hl,"__esModule",{value:!0});Hl.TypeDefinitionRequest=void 0;var lf=De(),uf;(function(r){r.method="textDocument/typeDefinition",r.messageDirection=lf.MessageDirection.clientToServer,r.type=new lf.ProtocolRequestType(r.method)})(uf||(Hl.TypeDefinitionRequest=uf={}))});var pf=q(Ln=>{"use strict";Object.defineProperty(Ln,"__esModule",{value:!0});Ln.DidChangeWorkspaceFoldersNotification=Ln.WorkspaceFoldersRequest=void 0;var Bl=De(),hf;(function(r){r.method="workspace/workspaceFolders",r.messageDirection=Bl.MessageDirection.serverToClient,r.type=new Bl.ProtocolRequestType0(r.method)})(hf||(Ln.WorkspaceFoldersRequest=hf={}));var df;(function(r){r.method="workspace/didChangeWorkspaceFolders",r.messageDirection=Bl.MessageDirection.clientToServer,r.type=new Bl.ProtocolNotificationType(r.method)})(df||(Ln.DidChangeWorkspaceFoldersNotification=df={}))});var xf=q(_l=>{"use strict";Object.defineProperty(_l,"__esModule",{value:!0});_l.ConfigurationRequest=void 0;var ff=De(),mf;(function(r){r.method="workspace/configuration",r.messageDirection=ff.MessageDirection.serverToClient,r.type=new ff.ProtocolRequestType(r.method)})(mf||(_l.ConfigurationRequest=mf={}))});var Rf=q(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.ColorPresentationRequest=Sn.DocumentColorRequest=void 0;var Vl=De(),bf;(function(r){r.method="textDocument/documentColor",r.messageDirection=Vl.MessageDirection.clientToServer,r.type=new Vl.ProtocolRequestType(r.method)})(bf||(Sn.DocumentColorRequest=bf={}));var gf;(function(r){r.method="textDocument/colorPresentation",r.messageDirection=Vl.MessageDirection.clientToServer,r.type=new Vl.ProtocolRequestType(r.method)})(gf||(Sn.ColorPresentationRequest=gf={}))});var vf=q(Pn=>{"use strict";Object.defineProperty(Pn,"__esModule",{value:!0});Pn.FoldingRangeRefreshRequest=Pn.FoldingRangeRequest=void 0;var ql=De(),yf;(function(r){r.method="textDocument/foldingRange",r.messageDirection=ql.MessageDirection.clientToServer,r.type=new ql.ProtocolRequestType(r.method)})(yf||(Pn.FoldingRangeRequest=yf={}));var Cf;(function(r){r.method="workspace/foldingRange/refresh",r.messageDirection=ql.MessageDirection.serverToClient,r.type=new ql.ProtocolRequestType0(r.method)})(Cf||(Pn.FoldingRangeRefreshRequest=Cf={}))});var Sf=q(jl=>{"use strict";Object.defineProperty(jl,"__esModule",{value:!0});jl.DeclarationRequest=void 0;var Ef=De(),Lf;(function(r){r.method="textDocument/declaration",r.messageDirection=Ef.MessageDirection.clientToServer,r.type=new Ef.ProtocolRequestType(r.method)})(Lf||(jl.DeclarationRequest=Lf={}))});var Af=q(Gl=>{"use strict";Object.defineProperty(Gl,"__esModule",{value:!0});Gl.SelectionRangeRequest=void 0;var Pf=De(),Tf;(function(r){r.method="textDocument/selectionRange",r.messageDirection=Pf.MessageDirection.clientToServer,r.type=new Pf.ProtocolRequestType(r.method)})(Tf||(Gl.SelectionRangeRequest=Tf={}))});var wf=q($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.WorkDoneProgressCancelNotification=$r.WorkDoneProgressCreateRequest=$r.WorkDoneProgress=void 0;var x5=Pi(),Wl=De(),Mf;(function(r){r.type=new x5.ProgressType;function e(t){return t===r.type}r.is=e})(Mf||($r.WorkDoneProgress=Mf={}));var Nf;(function(r){r.method="window/workDoneProgress/create",r.messageDirection=Wl.MessageDirection.serverToClient,r.type=new Wl.ProtocolRequestType(r.method)})(Nf||($r.WorkDoneProgressCreateRequest=Nf={}));var Uf;(function(r){r.method="window/workDoneProgress/cancel",r.messageDirection=Wl.MessageDirection.clientToServer,r.type=new Wl.ProtocolNotificationType(r.method)})(Uf||($r.WorkDoneProgressCancelNotification=Uf={}))});var kf=q(Yr=>{"use strict";Object.defineProperty(Yr,"__esModule",{value:!0});Yr.CallHierarchyOutgoingCallsRequest=Yr.CallHierarchyIncomingCallsRequest=Yr.CallHierarchyPrepareRequest=void 0;var Tn=De(),Df;(function(r){r.method="textDocument/prepareCallHierarchy",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(Df||(Yr.CallHierarchyPrepareRequest=Df={}));var Of;(function(r){r.method="callHierarchy/incomingCalls",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(Of||(Yr.CallHierarchyIncomingCallsRequest=Of={}));var If;(function(r){r.method="callHierarchy/outgoingCalls",r.messageDirection=Tn.MessageDirection.clientToServer,r.type=new Tn.ProtocolRequestType(r.method)})(If||(Yr.CallHierarchyOutgoingCallsRequest=If={}))});var qf=q(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.SemanticTokensRefreshRequest=St.SemanticTokensRangeRequest=St.SemanticTokensDeltaRequest=St.SemanticTokensRequest=St.SemanticTokensRegistrationType=St.TokenFormat=void 0;var Ur=De(),Ff;(function(r){r.Relative="relative"})(Ff||(St.TokenFormat=Ff={}));var Bs;(function(r){r.method="textDocument/semanticTokens",r.type=new Ur.RegistrationType(r.method)})(Bs||(St.SemanticTokensRegistrationType=Bs={}));var Hf;(function(r){r.method="textDocument/semanticTokens/full",r.messageDirection=Ur.MessageDirection.clientToServer,r.type=new Ur.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(Hf||(St.SemanticTokensRequest=Hf={}));var Bf;(function(r){r.method="textDocument/semanticTokens/full/delta",r.messageDirection=Ur.MessageDirection.clientToServer,r.type=new Ur.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(Bf||(St.SemanticTokensDeltaRequest=Bf={}));var _f;(function(r){r.method="textDocument/semanticTokens/range",r.messageDirection=Ur.MessageDirection.clientToServer,r.type=new Ur.ProtocolRequestType(r.method),r.registrationMethod=Bs.method})(_f||(St.SemanticTokensRangeRequest=_f={}));var Vf;(function(r){r.method="workspace/semanticTokens/refresh",r.messageDirection=Ur.MessageDirection.serverToClient,r.type=new Ur.ProtocolRequestType0(r.method)})(Vf||(St.SemanticTokensRefreshRequest=Vf={}))});var Wf=q(zl=>{"use strict";Object.defineProperty(zl,"__esModule",{value:!0});zl.ShowDocumentRequest=void 0;var jf=De(),Gf;(function(r){r.method="window/showDocument",r.messageDirection=jf.MessageDirection.serverToClient,r.type=new jf.ProtocolRequestType(r.method)})(Gf||(zl.ShowDocumentRequest=Gf={}))});var Qf=q(Kl=>{"use strict";Object.defineProperty(Kl,"__esModule",{value:!0});Kl.LinkedEditingRangeRequest=void 0;var zf=De(),Kf;(function(r){r.method="textDocument/linkedEditingRange",r.messageDirection=zf.MessageDirection.clientToServer,r.type=new zf.ProtocolRequestType(r.method)})(Kf||(Kl.LinkedEditingRangeRequest=Kf={}))});var rm=q(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.WillDeleteFilesRequest=ct.DidDeleteFilesNotification=ct.DidRenameFilesNotification=ct.WillRenameFilesRequest=ct.DidCreateFilesNotification=ct.WillCreateFilesRequest=ct.FileOperationPatternKind=void 0;var Ft=De(),$f;(function(r){r.file="file",r.folder="folder"})($f||(ct.FileOperationPatternKind=$f={}));var Yf;(function(r){r.method="workspace/willCreateFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolRequestType(r.method)})(Yf||(ct.WillCreateFilesRequest=Yf={}));var Jf;(function(r){r.method="workspace/didCreateFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolNotificationType(r.method)})(Jf||(ct.DidCreateFilesNotification=Jf={}));var Xf;(function(r){r.method="workspace/willRenameFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolRequestType(r.method)})(Xf||(ct.WillRenameFilesRequest=Xf={}));var Zf;(function(r){r.method="workspace/didRenameFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolNotificationType(r.method)})(Zf||(ct.DidRenameFilesNotification=Zf={}));var em;(function(r){r.method="workspace/didDeleteFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolNotificationType(r.method)})(em||(ct.DidDeleteFilesNotification=em={}));var tm;(function(r){r.method="workspace/willDeleteFiles",r.messageDirection=Ft.MessageDirection.clientToServer,r.type=new Ft.ProtocolRequestType(r.method)})(tm||(ct.WillDeleteFilesRequest=tm={}))});var om=q(Jr=>{"use strict";Object.defineProperty(Jr,"__esModule",{value:!0});Jr.MonikerRequest=Jr.MonikerKind=Jr.UniquenessLevel=void 0;var im=De(),nm;(function(r){r.document="document",r.project="project",r.group="group",r.scheme="scheme",r.global="global"})(nm||(Jr.UniquenessLevel=nm={}));var sm;(function(r){r.$import="import",r.$export="export",r.local="local"})(sm||(Jr.MonikerKind=sm={}));var am;(function(r){r.method="textDocument/moniker",r.messageDirection=im.MessageDirection.clientToServer,r.type=new im.ProtocolRequestType(r.method)})(am||(Jr.MonikerRequest=am={}))});var hm=q(Xr=>{"use strict";Object.defineProperty(Xr,"__esModule",{value:!0});Xr.TypeHierarchySubtypesRequest=Xr.TypeHierarchySupertypesRequest=Xr.TypeHierarchyPrepareRequest=void 0;var An=De(),lm;(function(r){r.method="textDocument/prepareTypeHierarchy",r.messageDirection=An.MessageDirection.clientToServer,r.type=new An.ProtocolRequestType(r.method)})(lm||(Xr.TypeHierarchyPrepareRequest=lm={}));var um;(function(r){r.method="typeHierarchy/supertypes",r.messageDirection=An.MessageDirection.clientToServer,r.type=new An.ProtocolRequestType(r.method)})(um||(Xr.TypeHierarchySupertypesRequest=um={}));var cm;(function(r){r.method="typeHierarchy/subtypes",r.messageDirection=An.MessageDirection.clientToServer,r.type=new An.ProtocolRequestType(r.method)})(cm||(Xr.TypeHierarchySubtypesRequest=cm={}))});var fm=q(Mn=>{"use strict";Object.defineProperty(Mn,"__esModule",{value:!0});Mn.InlineValueRefreshRequest=Mn.InlineValueRequest=void 0;var Ql=De(),dm;(function(r){r.method="textDocument/inlineValue",r.messageDirection=Ql.MessageDirection.clientToServer,r.type=new Ql.ProtocolRequestType(r.method)})(dm||(Mn.InlineValueRequest=dm={}));var pm;(function(r){r.method="workspace/inlineValue/refresh",r.messageDirection=Ql.MessageDirection.serverToClient,r.type=new Ql.ProtocolRequestType0(r.method)})(pm||(Mn.InlineValueRefreshRequest=pm={}))});var gm=q(Zr=>{"use strict";Object.defineProperty(Zr,"__esModule",{value:!0});Zr.InlayHintRefreshRequest=Zr.InlayHintResolveRequest=Zr.InlayHintRequest=void 0;var Nn=De(),mm;(function(r){r.method="textDocument/inlayHint",r.messageDirection=Nn.MessageDirection.clientToServer,r.type=new Nn.ProtocolRequestType(r.method)})(mm||(Zr.InlayHintRequest=mm={}));var xm;(function(r){r.method="inlayHint/resolve",r.messageDirection=Nn.MessageDirection.clientToServer,r.type=new Nn.ProtocolRequestType(r.method)})(xm||(Zr.InlayHintResolveRequest=xm={}));var bm;(function(r){r.method="workspace/inlayHint/refresh",r.messageDirection=Nn.MessageDirection.serverToClient,r.type=new Nn.ProtocolRequestType0(r.method)})(bm||(Zr.InlayHintRefreshRequest=bm={}))});var Sm=q(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.DiagnosticRefreshRequest=Ht.WorkspaceDiagnosticRequest=Ht.DocumentDiagnosticRequest=Ht.DocumentDiagnosticReportKind=Ht.DiagnosticServerCancellationData=void 0;var Lm=Pi(),b5=kl(),Un=De(),Rm;(function(r){function e(t){let i=t;return i&&b5.boolean(i.retriggerRequest)}r.is=e})(Rm||(Ht.DiagnosticServerCancellationData=Rm={}));var ym;(function(r){r.Full="full",r.Unchanged="unchanged"})(ym||(Ht.DocumentDiagnosticReportKind=ym={}));var Cm;(function(r){r.method="textDocument/diagnostic",r.messageDirection=Un.MessageDirection.clientToServer,r.type=new Un.ProtocolRequestType(r.method),r.partialResult=new Lm.ProgressType})(Cm||(Ht.DocumentDiagnosticRequest=Cm={}));var vm;(function(r){r.method="workspace/diagnostic",r.messageDirection=Un.MessageDirection.clientToServer,r.type=new Un.ProtocolRequestType(r.method),r.partialResult=new Lm.ProgressType})(vm||(Ht.WorkspaceDiagnosticRequest=vm={}));var Em;(function(r){r.method="workspace/diagnostic/refresh",r.messageDirection=Un.MessageDirection.serverToClient,r.type=new Un.ProtocolRequestType0(r.method)})(Em||(Ht.DiagnosticRefreshRequest=Em={}))});var wm=q(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.DidCloseNotebookDocumentNotification=He.DidSaveNotebookDocumentNotification=He.DidChangeNotebookDocumentNotification=He.NotebookCellArrayChange=He.DidOpenNotebookDocumentNotification=He.NotebookDocumentSyncRegistrationType=He.NotebookDocument=He.NotebookCell=He.ExecutionSummary=He.NotebookCellKind=void 0;var _s=Il(),rr=kl(),mr=De(),kp;(function(r){r.Markup=1,r.Code=2;function e(t){return t===1||t===2}r.is=e})(kp||(He.NotebookCellKind=kp={}));var Fp;(function(r){function e(n,a){let o={executionOrder:n};return(a===!0||a===!1)&&(o.success=a),o}r.create=e;function t(n){let a=n;return rr.objectLiteral(a)&&_s.uinteger.is(a.executionOrder)&&(a.success===void 0||rr.boolean(a.success))}r.is=t;function i(n,a){return n===a?!0:n==null||a===null||a===void 0?!1:n.executionOrder===a.executionOrder&&n.success===a.success}r.equals=i})(Fp||(He.ExecutionSummary=Fp={}));var $l;(function(r){function e(a,o){return{kind:a,document:o}}r.create=e;function t(a){let o=a;return rr.objectLiteral(o)&&kp.is(o.kind)&&_s.DocumentUri.is(o.document)&&(o.metadata===void 0||rr.objectLiteral(o.metadata))}r.is=t;function i(a,o){let l=new Set;return a.document!==o.document&&l.add("document"),a.kind!==o.kind&&l.add("kind"),a.executionSummary!==o.executionSummary&&l.add("executionSummary"),(a.metadata!==void 0||o.metadata!==void 0)&&!n(a.metadata,o.metadata)&&l.add("metadata"),(a.executionSummary!==void 0||o.executionSummary!==void 0)&&!Fp.equals(a.executionSummary,o.executionSummary)&&l.add("executionSummary"),l}r.diff=i;function n(a,o){if(a===o)return!0;if(a==null||o===null||o===void 0||typeof a!=typeof o||typeof a!="object")return!1;let l=Array.isArray(a),h=Array.isArray(o);if(l!==h)return!1;if(l&&h){if(a.length!==o.length)return!1;for(let f=0;f<a.length;f++)if(!n(a[f],o[f]))return!1}if(rr.objectLiteral(a)&&rr.objectLiteral(o)){let f=Object.keys(a),x=Object.keys(o);if(f.length!==x.length||(f.sort(),x.sort(),!n(f,x)))return!1;for(let R=0;R<f.length;R++){let S=f[R];if(!n(a[S],o[S]))return!1}}return!0}})($l||(He.NotebookCell=$l={}));var Pm;(function(r){function e(i,n,a,o){return{uri:i,notebookType:n,version:a,cells:o}}r.create=e;function t(i){let n=i;return rr.objectLiteral(n)&&rr.string(n.uri)&&_s.integer.is(n.version)&&rr.typedArray(n.cells,$l.is)}r.is=t})(Pm||(He.NotebookDocument=Pm={}));var wn;(function(r){r.method="notebookDocument/sync",r.messageDirection=mr.MessageDirection.clientToServer,r.type=new mr.RegistrationType(r.method)})(wn||(He.NotebookDocumentSyncRegistrationType=wn={}));var Tm;(function(r){r.method="notebookDocument/didOpen",r.messageDirection=mr.MessageDirection.clientToServer,r.type=new mr.ProtocolNotificationType(r.method),r.registrationMethod=wn.method})(Tm||(He.DidOpenNotebookDocumentNotification=Tm={}));var Am;(function(r){function e(i){let n=i;return rr.objectLiteral(n)&&_s.uinteger.is(n.start)&&_s.uinteger.is(n.deleteCount)&&(n.cells===void 0||rr.typedArray(n.cells,$l.is))}r.is=e;function t(i,n,a){let o={start:i,deleteCount:n};return a!==void 0&&(o.cells=a),o}r.create=t})(Am||(He.NotebookCellArrayChange=Am={}));var Mm;(function(r){r.method="notebookDocument/didChange",r.messageDirection=mr.MessageDirection.clientToServer,r.type=new mr.ProtocolNotificationType(r.method),r.registrationMethod=wn.method})(Mm||(He.DidChangeNotebookDocumentNotification=Mm={}));var Nm;(function(r){r.method="notebookDocument/didSave",r.messageDirection=mr.MessageDirection.clientToServer,r.type=new mr.ProtocolNotificationType(r.method),r.registrationMethod=wn.method})(Nm||(He.DidSaveNotebookDocumentNotification=Nm={}));var Um;(function(r){r.method="notebookDocument/didClose",r.messageDirection=mr.MessageDirection.clientToServer,r.type=new mr.ProtocolNotificationType(r.method),r.registrationMethod=wn.method})(Um||(He.DidCloseNotebookDocumentNotification=Um={}))});var Im=q(Yl=>{"use strict";Object.defineProperty(Yl,"__esModule",{value:!0});Yl.InlineCompletionRequest=void 0;var Dm=De(),Om;(function(r){r.method="textDocument/inlineCompletion",r.messageDirection=Dm.MessageDirection.clientToServer,r.type=new Dm.ProtocolRequestType(r.method)})(Om||(Yl.InlineCompletionRequest=Om={}))});var Qx=q(b=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});b.WorkspaceSymbolRequest=b.CodeActionResolveRequest=b.CodeActionRequest=b.DocumentSymbolRequest=b.DocumentHighlightRequest=b.ReferencesRequest=b.DefinitionRequest=b.SignatureHelpRequest=b.SignatureHelpTriggerKind=b.HoverRequest=b.CompletionResolveRequest=b.CompletionRequest=b.CompletionTriggerKind=b.PublishDiagnosticsNotification=b.WatchKind=b.RelativePattern=b.FileChangeType=b.DidChangeWatchedFilesNotification=b.WillSaveTextDocumentWaitUntilRequest=b.WillSaveTextDocumentNotification=b.TextDocumentSaveReason=b.DidSaveTextDocumentNotification=b.DidCloseTextDocumentNotification=b.DidChangeTextDocumentNotification=b.TextDocumentContentChangeEvent=b.DidOpenTextDocumentNotification=b.TextDocumentSyncKind=b.TelemetryEventNotification=b.LogMessageNotification=b.ShowMessageRequest=b.ShowMessageNotification=b.MessageType=b.DidChangeConfigurationNotification=b.ExitNotification=b.ShutdownRequest=b.InitializedNotification=b.InitializeErrorCodes=b.InitializeRequest=b.WorkDoneProgressOptions=b.TextDocumentRegistrationOptions=b.StaticRegistrationOptions=b.PositionEncodingKind=b.FailureHandlingKind=b.ResourceOperationKind=b.UnregistrationRequest=b.RegistrationRequest=b.DocumentSelector=b.NotebookCellTextDocumentFilter=b.NotebookDocumentFilter=b.TextDocumentFilter=void 0;b.MonikerRequest=b.MonikerKind=b.UniquenessLevel=b.WillDeleteFilesRequest=b.DidDeleteFilesNotification=b.WillRenameFilesRequest=b.DidRenameFilesNotification=b.WillCreateFilesRequest=b.DidCreateFilesNotification=b.FileOperationPatternKind=b.LinkedEditingRangeRequest=b.ShowDocumentRequest=b.SemanticTokensRegistrationType=b.SemanticTokensRefreshRequest=b.SemanticTokensRangeRequest=b.SemanticTokensDeltaRequest=b.SemanticTokensRequest=b.TokenFormat=b.CallHierarchyPrepareRequest=b.CallHierarchyOutgoingCallsRequest=b.CallHierarchyIncomingCallsRequest=b.WorkDoneProgressCancelNotification=b.WorkDoneProgressCreateRequest=b.WorkDoneProgress=b.SelectionRangeRequest=b.DeclarationRequest=b.FoldingRangeRefreshRequest=b.FoldingRangeRequest=b.ColorPresentationRequest=b.DocumentColorRequest=b.ConfigurationRequest=b.DidChangeWorkspaceFoldersNotification=b.WorkspaceFoldersRequest=b.TypeDefinitionRequest=b.ImplementationRequest=b.ApplyWorkspaceEditRequest=b.ExecuteCommandRequest=b.PrepareRenameRequest=b.RenameRequest=b.PrepareSupportDefaultBehavior=b.DocumentOnTypeFormattingRequest=b.DocumentRangesFormattingRequest=b.DocumentRangeFormattingRequest=b.DocumentFormattingRequest=b.DocumentLinkResolveRequest=b.DocumentLinkRequest=b.CodeLensRefreshRequest=b.CodeLensResolveRequest=b.CodeLensRequest=b.WorkspaceSymbolResolveRequest=void 0;b.InlineCompletionRequest=b.DidCloseNotebookDocumentNotification=b.DidSaveNotebookDocumentNotification=b.DidChangeNotebookDocumentNotification=b.NotebookCellArrayChange=b.DidOpenNotebookDocumentNotification=b.NotebookDocumentSyncRegistrationType=b.NotebookDocument=b.NotebookCell=b.ExecutionSummary=b.NotebookCellKind=b.DiagnosticRefreshRequest=b.WorkspaceDiagnosticRequest=b.DocumentDiagnosticRequest=b.DocumentDiagnosticReportKind=b.DiagnosticServerCancellationData=b.InlayHintRefreshRequest=b.InlayHintResolveRequest=b.InlayHintRequest=b.InlineValueRefreshRequest=b.InlineValueRequest=b.TypeHierarchySupertypesRequest=b.TypeHierarchySubtypesRequest=b.TypeHierarchyPrepareRequest=void 0;var k=De(),km=Il(),Xe=kl(),g5=of();Object.defineProperty(b,"ImplementationRequest",{enumerable:!0,get:function(){return g5.ImplementationRequest}});var R5=cf();Object.defineProperty(b,"TypeDefinitionRequest",{enumerable:!0,get:function(){return R5.TypeDefinitionRequest}});var Gx=pf();Object.defineProperty(b,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return Gx.WorkspaceFoldersRequest}});Object.defineProperty(b,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return Gx.DidChangeWorkspaceFoldersNotification}});var y5=xf();Object.defineProperty(b,"ConfigurationRequest",{enumerable:!0,get:function(){return y5.ConfigurationRequest}});var Wx=Rf();Object.defineProperty(b,"DocumentColorRequest",{enumerable:!0,get:function(){return Wx.DocumentColorRequest}});Object.defineProperty(b,"ColorPresentationRequest",{enumerable:!0,get:function(){return Wx.ColorPresentationRequest}});var zx=vf();Object.defineProperty(b,"FoldingRangeRequest",{enumerable:!0,get:function(){return zx.FoldingRangeRequest}});Object.defineProperty(b,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return zx.FoldingRangeRefreshRequest}});var C5=Sf();Object.defineProperty(b,"DeclarationRequest",{enumerable:!0,get:function(){return C5.DeclarationRequest}});var v5=Af();Object.defineProperty(b,"SelectionRangeRequest",{enumerable:!0,get:function(){return v5.SelectionRangeRequest}});var qp=wf();Object.defineProperty(b,"WorkDoneProgress",{enumerable:!0,get:function(){return qp.WorkDoneProgress}});Object.defineProperty(b,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return qp.WorkDoneProgressCreateRequest}});Object.defineProperty(b,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return qp.WorkDoneProgressCancelNotification}});var jp=kf();Object.defineProperty(b,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return jp.CallHierarchyIncomingCallsRequest}});Object.defineProperty(b,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return jp.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(b,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return jp.CallHierarchyPrepareRequest}});var Dn=qf();Object.defineProperty(b,"TokenFormat",{enumerable:!0,get:function(){return Dn.TokenFormat}});Object.defineProperty(b,"SemanticTokensRequest",{enumerable:!0,get:function(){return Dn.SemanticTokensRequest}});Object.defineProperty(b,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return Dn.SemanticTokensDeltaRequest}});Object.defineProperty(b,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return Dn.SemanticTokensRangeRequest}});Object.defineProperty(b,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return Dn.SemanticTokensRefreshRequest}});Object.defineProperty(b,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return Dn.SemanticTokensRegistrationType}});var E5=Wf();Object.defineProperty(b,"ShowDocumentRequest",{enumerable:!0,get:function(){return E5.ShowDocumentRequest}});var L5=Qf();Object.defineProperty(b,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return L5.LinkedEditingRangeRequest}});var Ti=rm();Object.defineProperty(b,"FileOperationPatternKind",{enumerable:!0,get:function(){return Ti.FileOperationPatternKind}});Object.defineProperty(b,"DidCreateFilesNotification",{enumerable:!0,get:function(){return Ti.DidCreateFilesNotification}});Object.defineProperty(b,"WillCreateFilesRequest",{enumerable:!0,get:function(){return Ti.WillCreateFilesRequest}});Object.defineProperty(b,"DidRenameFilesNotification",{enumerable:!0,get:function(){return Ti.DidRenameFilesNotification}});Object.defineProperty(b,"WillRenameFilesRequest",{enumerable:!0,get:function(){return Ti.WillRenameFilesRequest}});Object.defineProperty(b,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return Ti.DidDeleteFilesNotification}});Object.defineProperty(b,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return Ti.WillDeleteFilesRequest}});var Gp=om();Object.defineProperty(b,"UniquenessLevel",{enumerable:!0,get:function(){return Gp.UniquenessLevel}});Object.defineProperty(b,"MonikerKind",{enumerable:!0,get:function(){return Gp.MonikerKind}});Object.defineProperty(b,"MonikerRequest",{enumerable:!0,get:function(){return Gp.MonikerRequest}});var Wp=hm();Object.defineProperty(b,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return Wp.TypeHierarchyPrepareRequest}});Object.defineProperty(b,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return Wp.TypeHierarchySubtypesRequest}});Object.defineProperty(b,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return Wp.TypeHierarchySupertypesRequest}});var Kx=fm();Object.defineProperty(b,"InlineValueRequest",{enumerable:!0,get:function(){return Kx.InlineValueRequest}});Object.defineProperty(b,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return Kx.InlineValueRefreshRequest}});var zp=gm();Object.defineProperty(b,"InlayHintRequest",{enumerable:!0,get:function(){return zp.InlayHintRequest}});Object.defineProperty(b,"InlayHintResolveRequest",{enumerable:!0,get:function(){return zp.InlayHintResolveRequest}});Object.defineProperty(b,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return zp.InlayHintRefreshRequest}});var Vs=Sm();Object.defineProperty(b,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return Vs.DiagnosticServerCancellationData}});Object.defineProperty(b,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return Vs.DocumentDiagnosticReportKind}});Object.defineProperty(b,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return Vs.DocumentDiagnosticRequest}});Object.defineProperty(b,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return Vs.WorkspaceDiagnosticRequest}});Object.defineProperty(b,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return Vs.DiagnosticRefreshRequest}});var xr=wm();Object.defineProperty(b,"NotebookCellKind",{enumerable:!0,get:function(){return xr.NotebookCellKind}});Object.defineProperty(b,"ExecutionSummary",{enumerable:!0,get:function(){return xr.ExecutionSummary}});Object.defineProperty(b,"NotebookCell",{enumerable:!0,get:function(){return xr.NotebookCell}});Object.defineProperty(b,"NotebookDocument",{enumerable:!0,get:function(){return xr.NotebookDocument}});Object.defineProperty(b,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return xr.NotebookDocumentSyncRegistrationType}});Object.defineProperty(b,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return xr.DidOpenNotebookDocumentNotification}});Object.defineProperty(b,"NotebookCellArrayChange",{enumerable:!0,get:function(){return xr.NotebookCellArrayChange}});Object.defineProperty(b,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return xr.DidChangeNotebookDocumentNotification}});Object.defineProperty(b,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return xr.DidSaveNotebookDocumentNotification}});Object.defineProperty(b,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return xr.DidCloseNotebookDocumentNotification}});var S5=Im();Object.defineProperty(b,"InlineCompletionRequest",{enumerable:!0,get:function(){return S5.InlineCompletionRequest}});var Hp;(function(r){function e(t){let i=t;return Xe.string(i)||Xe.string(i.language)||Xe.string(i.scheme)||Xe.string(i.pattern)}r.is=e})(Hp||(b.TextDocumentFilter=Hp={}));var Bp;(function(r){function e(t){let i=t;return Xe.objectLiteral(i)&&(Xe.string(i.notebookType)||Xe.string(i.scheme)||Xe.string(i.pattern))}r.is=e})(Bp||(b.NotebookDocumentFilter=Bp={}));var _p;(function(r){function e(t){let i=t;return Xe.objectLiteral(i)&&(Xe.string(i.notebook)||Bp.is(i.notebook))&&(i.language===void 0||Xe.string(i.language))}r.is=e})(_p||(b.NotebookCellTextDocumentFilter=_p={}));var Vp;(function(r){function e(t){if(!Array.isArray(t))return!1;for(let i of t)if(!Xe.string(i)&&!Hp.is(i)&&!_p.is(i))return!1;return!0}r.is=e})(Vp||(b.DocumentSelector=Vp={}));var Fm;(function(r){r.method="client/registerCapability",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolRequestType(r.method)})(Fm||(b.RegistrationRequest=Fm={}));var Hm;(function(r){r.method="client/unregisterCapability",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolRequestType(r.method)})(Hm||(b.UnregistrationRequest=Hm={}));var Bm;(function(r){r.Create="create",r.Rename="rename",r.Delete="delete"})(Bm||(b.ResourceOperationKind=Bm={}));var _m;(function(r){r.Abort="abort",r.Transactional="transactional",r.TextOnlyTransactional="textOnlyTransactional",r.Undo="undo"})(_m||(b.FailureHandlingKind=_m={}));var Vm;(function(r){r.UTF8="utf-8",r.UTF16="utf-16",r.UTF32="utf-32"})(Vm||(b.PositionEncodingKind=Vm={}));var qm;(function(r){function e(t){let i=t;return i&&Xe.string(i.id)&&i.id.length>0}r.hasId=e})(qm||(b.StaticRegistrationOptions=qm={}));var jm;(function(r){function e(t){let i=t;return i&&(i.documentSelector===null||Vp.is(i.documentSelector))}r.is=e})(jm||(b.TextDocumentRegistrationOptions=jm={}));var Gm;(function(r){function e(i){let n=i;return Xe.objectLiteral(n)&&(n.workDoneProgress===void 0||Xe.boolean(n.workDoneProgress))}r.is=e;function t(i){let n=i;return n&&Xe.boolean(n.workDoneProgress)}r.hasWorkDoneProgress=t})(Gm||(b.WorkDoneProgressOptions=Gm={}));var Wm;(function(r){r.method="initialize",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Wm||(b.InitializeRequest=Wm={}));var zm;(function(r){r.unknownProtocolVersion=1})(zm||(b.InitializeErrorCodes=zm={}));var Km;(function(r){r.method="initialized",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(Km||(b.InitializedNotification=Km={}));var Qm;(function(r){r.method="shutdown",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType0(r.method)})(Qm||(b.ShutdownRequest=Qm={}));var $m;(function(r){r.method="exit",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType0(r.method)})($m||(b.ExitNotification=$m={}));var Ym;(function(r){r.method="workspace/didChangeConfiguration",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(Ym||(b.DidChangeConfigurationNotification=Ym={}));var Jm;(function(r){r.Error=1,r.Warning=2,r.Info=3,r.Log=4,r.Debug=5})(Jm||(b.MessageType=Jm={}));var Xm;(function(r){r.method="window/showMessage",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolNotificationType(r.method)})(Xm||(b.ShowMessageNotification=Xm={}));var Zm;(function(r){r.method="window/showMessageRequest",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolRequestType(r.method)})(Zm||(b.ShowMessageRequest=Zm={}));var ex;(function(r){r.method="window/logMessage",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolNotificationType(r.method)})(ex||(b.LogMessageNotification=ex={}));var tx;(function(r){r.method="telemetry/event",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolNotificationType(r.method)})(tx||(b.TelemetryEventNotification=tx={}));var rx;(function(r){r.None=0,r.Full=1,r.Incremental=2})(rx||(b.TextDocumentSyncKind=rx={}));var ix;(function(r){r.method="textDocument/didOpen",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(ix||(b.DidOpenTextDocumentNotification=ix={}));var nx;(function(r){function e(i){let n=i;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}r.isIncremental=e;function t(i){let n=i;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}r.isFull=t})(nx||(b.TextDocumentContentChangeEvent=nx={}));var sx;(function(r){r.method="textDocument/didChange",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(sx||(b.DidChangeTextDocumentNotification=sx={}));var ax;(function(r){r.method="textDocument/didClose",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(ax||(b.DidCloseTextDocumentNotification=ax={}));var ox;(function(r){r.method="textDocument/didSave",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(ox||(b.DidSaveTextDocumentNotification=ox={}));var lx;(function(r){r.Manual=1,r.AfterDelay=2,r.FocusOut=3})(lx||(b.TextDocumentSaveReason=lx={}));var ux;(function(r){r.method="textDocument/willSave",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(ux||(b.WillSaveTextDocumentNotification=ux={}));var cx;(function(r){r.method="textDocument/willSaveWaitUntil",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(cx||(b.WillSaveTextDocumentWaitUntilRequest=cx={}));var hx;(function(r){r.method="workspace/didChangeWatchedFiles",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolNotificationType(r.method)})(hx||(b.DidChangeWatchedFilesNotification=hx={}));var dx;(function(r){r.Created=1,r.Changed=2,r.Deleted=3})(dx||(b.FileChangeType=dx={}));var px;(function(r){function e(t){let i=t;return Xe.objectLiteral(i)&&(km.URI.is(i.baseUri)||km.WorkspaceFolder.is(i.baseUri))&&Xe.string(i.pattern)}r.is=e})(px||(b.RelativePattern=px={}));var fx;(function(r){r.Create=1,r.Change=2,r.Delete=4})(fx||(b.WatchKind=fx={}));var mx;(function(r){r.method="textDocument/publishDiagnostics",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolNotificationType(r.method)})(mx||(b.PublishDiagnosticsNotification=mx={}));var xx;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.TriggerForIncompleteCompletions=3})(xx||(b.CompletionTriggerKind=xx={}));var bx;(function(r){r.method="textDocument/completion",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(bx||(b.CompletionRequest=bx={}));var gx;(function(r){r.method="completionItem/resolve",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(gx||(b.CompletionResolveRequest=gx={}));var Rx;(function(r){r.method="textDocument/hover",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Rx||(b.HoverRequest=Rx={}));var yx;(function(r){r.Invoked=1,r.TriggerCharacter=2,r.ContentChange=3})(yx||(b.SignatureHelpTriggerKind=yx={}));var Cx;(function(r){r.method="textDocument/signatureHelp",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Cx||(b.SignatureHelpRequest=Cx={}));var vx;(function(r){r.method="textDocument/definition",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(vx||(b.DefinitionRequest=vx={}));var Ex;(function(r){r.method="textDocument/references",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Ex||(b.ReferencesRequest=Ex={}));var Lx;(function(r){r.method="textDocument/documentHighlight",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Lx||(b.DocumentHighlightRequest=Lx={}));var Sx;(function(r){r.method="textDocument/documentSymbol",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Sx||(b.DocumentSymbolRequest=Sx={}));var Px;(function(r){r.method="textDocument/codeAction",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Px||(b.CodeActionRequest=Px={}));var Tx;(function(r){r.method="codeAction/resolve",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Tx||(b.CodeActionResolveRequest=Tx={}));var Ax;(function(r){r.method="workspace/symbol",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Ax||(b.WorkspaceSymbolRequest=Ax={}));var Mx;(function(r){r.method="workspaceSymbol/resolve",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Mx||(b.WorkspaceSymbolResolveRequest=Mx={}));var Nx;(function(r){r.method="textDocument/codeLens",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Nx||(b.CodeLensRequest=Nx={}));var Ux;(function(r){r.method="codeLens/resolve",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Ux||(b.CodeLensResolveRequest=Ux={}));var wx;(function(r){r.method="workspace/codeLens/refresh",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolRequestType0(r.method)})(wx||(b.CodeLensRefreshRequest=wx={}));var Dx;(function(r){r.method="textDocument/documentLink",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Dx||(b.DocumentLinkRequest=Dx={}));var Ox;(function(r){r.method="documentLink/resolve",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Ox||(b.DocumentLinkResolveRequest=Ox={}));var Ix;(function(r){r.method="textDocument/formatting",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Ix||(b.DocumentFormattingRequest=Ix={}));var kx;(function(r){r.method="textDocument/rangeFormatting",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(kx||(b.DocumentRangeFormattingRequest=kx={}));var Fx;(function(r){r.method="textDocument/rangesFormatting",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Fx||(b.DocumentRangesFormattingRequest=Fx={}));var Hx;(function(r){r.method="textDocument/onTypeFormatting",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Hx||(b.DocumentOnTypeFormattingRequest=Hx={}));var Bx;(function(r){r.Identifier=1})(Bx||(b.PrepareSupportDefaultBehavior=Bx={}));var _x;(function(r){r.method="textDocument/rename",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(_x||(b.RenameRequest=_x={}));var Vx;(function(r){r.method="textDocument/prepareRename",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(Vx||(b.PrepareRenameRequest=Vx={}));var qx;(function(r){r.method="workspace/executeCommand",r.messageDirection=k.MessageDirection.clientToServer,r.type=new k.ProtocolRequestType(r.method)})(qx||(b.ExecuteCommandRequest=qx={}));var jx;(function(r){r.method="workspace/applyEdit",r.messageDirection=k.MessageDirection.serverToClient,r.type=new k.ProtocolRequestType("workspace/applyEdit")})(jx||(b.ApplyWorkspaceEditRequest=jx={}))});var Yx=q(Jl=>{"use strict";Object.defineProperty(Jl,"__esModule",{value:!0});Jl.createProtocolConnection=void 0;var $x=Pi();function P5(r,e,t,i){return $x.ConnectionStrategy.is(i)&&(i={connectionStrategy:i}),(0,$x.createMessageConnection)(r,e,t,i)}Jl.createProtocolConnection=P5});var Xx=q(Pt=>{"use strict";var T5=Pt&&Pt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Xl=Pt&&Pt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&T5(e,r,t)};Object.defineProperty(Pt,"__esModule",{value:!0});Pt.LSPErrorCodes=Pt.createProtocolConnection=void 0;Xl(Pi(),Pt);Xl(Il(),Pt);Xl(De(),Pt);Xl(Qx(),Pt);var A5=Yx();Object.defineProperty(Pt,"createProtocolConnection",{enumerable:!0,get:function(){return A5.createProtocolConnection}});var Jx;(function(r){r.lspReservedErrorRangeStart=-32899,r.RequestFailed=-32803,r.ServerCancelled=-32802,r.ContentModified=-32801,r.RequestCancelled=-32800,r.lspReservedErrorRangeEnd=-32800})(Jx||(Pt.LSPErrorCodes=Jx={}))});var _e=q(br=>{"use strict";var M5=br&&br.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Zx=br&&br.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&M5(e,r,t)};Object.defineProperty(br,"__esModule",{value:!0});br.createProtocolConnection=void 0;var N5=Np();Zx(Np(),br);Zx(Xx(),br);function U5(r,e,t,i){return(0,N5.createMessageConnection)(r,e,t,i)}br.createProtocolConnection=U5});var Kp=q(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.generateUuid=Bt.parse=Bt.isUUID=Bt.v4=Bt.empty=void 0;var qs=class{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}},js=class r extends qs{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return r._oneOf(r._chars)}constructor(){super([r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),"-","4",r._randomHex(),r._randomHex(),r._randomHex(),"-",r._oneOf(r._timeHighBits),r._randomHex(),r._randomHex(),r._randomHex(),"-",r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex(),r._randomHex()].join(""))}};js._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"];js._timeHighBits=["8","9","a","b"];Bt.empty=new qs("00000000-0000-0000-0000-000000000000");function eb(){return new js}Bt.v4=eb;var w5=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function tb(r){return w5.test(r)}Bt.isUUID=tb;function D5(r){if(!tb(r))throw new Error("invalid uuid");return new qs(r)}Bt.parse=D5;function O5(){return eb().asHex()}Bt.generateUuid=O5});var rb=q(ti=>{"use strict";Object.defineProperty(ti,"__esModule",{value:!0});ti.attachPartialResult=ti.ProgressFeature=ti.attachWorkDone=void 0;var ei=_e(),I5=Kp(),Ai=class r{constructor(e,t){this._connection=e,this._token=t,r.Instances.set(this._token,this)}begin(e,t,i,n){let a={kind:"begin",title:e,percentage:t,message:i,cancellable:n};this._connection.sendProgress(ei.WorkDoneProgress.type,this._token,a)}report(e,t){let i={kind:"report"};typeof e=="number"?(i.percentage=e,t!==void 0&&(i.message=t)):i.message=e,this._connection.sendProgress(ei.WorkDoneProgress.type,this._token,i)}done(){r.Instances.delete(this._token),this._connection.sendProgress(ei.WorkDoneProgress.type,this._token,{kind:"end"})}};Ai.Instances=new Map;var Zl=class extends Ai{constructor(e,t){super(e,t),this._source=new ei.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose(),super.done()}cancel(){this._source.cancel()}},Gs=class{constructor(){}begin(){}report(){}done(){}},eu=class extends Gs{constructor(){super(),this._source=new ei.CancellationTokenSource}get token(){return this._source.token}done(){this._source.dispose()}cancel(){this._source.cancel()}};function k5(r,e){if(e===void 0||e.workDoneToken===void 0)return new Gs;let t=e.workDoneToken;return delete e.workDoneToken,new Ai(r,t)}ti.attachWorkDone=k5;var F5=r=>class extends r{constructor(){super(),this._progressSupported=!1}initialize(e){super.initialize(e),e?.window?.workDoneProgress===!0&&(this._progressSupported=!0,this.connection.onNotification(ei.WorkDoneProgressCancelNotification.type,t=>{let i=Ai.Instances.get(t.token);(i instanceof Zl||i instanceof eu)&&i.cancel()}))}attachWorkDoneProgress(e){return e===void 0?new Gs:new Ai(this.connection,e)}createWorkDoneProgress(){if(this._progressSupported){let e=(0,I5.generateUuid)();return this.connection.sendRequest(ei.WorkDoneProgressCreateRequest.type,{token:e}).then(()=>new Zl(this.connection,e))}else return Promise.resolve(new eu)}};ti.ProgressFeature=F5;var Qp;(function(r){r.type=new ei.ProgressType})(Qp||(Qp={}));var $p=class{constructor(e,t){this._connection=e,this._token=t}report(e){this._connection.sendProgress(Qp.type,this._token,e)}};function H5(r,e){if(e===void 0||e.partialResultToken===void 0)return;let t=e.partialResultToken;return delete e.partialResultToken,new $p(r,t)}ti.attachPartialResult=H5});var ib=q(tu=>{"use strict";Object.defineProperty(tu,"__esModule",{value:!0});tu.ConfigurationFeature=void 0;var B5=_e(),_5=dl(),V5=r=>class extends r{getConfiguration(e){return e?_5.string(e)?this._getConfiguration({section:e}):this._getConfiguration(e):this._getConfiguration({})}_getConfiguration(e){let t={items:Array.isArray(e)?e:[e]};return this.connection.sendRequest(B5.ConfigurationRequest.type,t).then(i=>Array.isArray(i)?Array.isArray(e)?i:i[0]:Array.isArray(e)?[]:null)}};tu.ConfigurationFeature=V5});var nb=q(iu=>{"use strict";Object.defineProperty(iu,"__esModule",{value:!0});iu.WorkspaceFoldersFeature=void 0;var ru=_e(),q5=r=>class extends r{constructor(){super(),this._notificationIsAutoRegistered=!1}initialize(e){super.initialize(e);let t=e.workspace;t&&t.workspaceFolders&&(this._onDidChangeWorkspaceFolders=new ru.Emitter,this.connection.onNotification(ru.DidChangeWorkspaceFoldersNotification.type,i=>{this._onDidChangeWorkspaceFolders.fire(i.event)}))}fillServerCapabilities(e){super.fillServerCapabilities(e);let t=e.workspace?.workspaceFolders?.changeNotifications;this._notificationIsAutoRegistered=t===!0||typeof t=="string"}getWorkspaceFolders(){return this.connection.sendRequest(ru.WorkspaceFoldersRequest.type)}get onDidChangeWorkspaceFolders(){if(!this._onDidChangeWorkspaceFolders)throw new Error("Client doesn't support sending workspace folder change events.");return!this._notificationIsAutoRegistered&&!this._unregistration&&(this._unregistration=this.connection.client.register(ru.DidChangeWorkspaceFoldersNotification.type)),this._onDidChangeWorkspaceFolders.event}};iu.WorkspaceFoldersFeature=q5});var sb=q(nu=>{"use strict";Object.defineProperty(nu,"__esModule",{value:!0});nu.CallHierarchyFeature=void 0;var Yp=_e(),j5=r=>class extends r{get callHierarchy(){return{onPrepare:e=>this.connection.onRequest(Yp.CallHierarchyPrepareRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0)),onIncomingCalls:e=>{let t=Yp.CallHierarchyIncomingCallsRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onOutgoingCalls:e=>{let t=Yp.CallHierarchyOutgoingCallsRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};nu.CallHierarchyFeature=j5});var Xp=q(ri=>{"use strict";Object.defineProperty(ri,"__esModule",{value:!0});ri.SemanticTokensBuilder=ri.SemanticTokensDiff=ri.SemanticTokensFeature=void 0;var su=_e(),G5=r=>class extends r{get semanticTokens(){return{refresh:()=>this.connection.sendRequest(su.SemanticTokensRefreshRequest.type),on:e=>{let t=su.SemanticTokensRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onDelta:e=>{let t=su.SemanticTokensDeltaRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onRange:e=>{let t=su.SemanticTokensRangeRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};ri.SemanticTokensFeature=G5;var au=class{constructor(e,t){this.originalSequence=e,this.modifiedSequence=t}computeDiff(){let e=this.originalSequence.length,t=this.modifiedSequence.length,i=0;for(;i<t&&i<e&&this.originalSequence[i]===this.modifiedSequence[i];)i++;if(i<t&&i<e){let n=e-1,a=t-1;for(;n>=i&&a>=i&&this.originalSequence[n]===this.modifiedSequence[a];)n--,a--;(n<i||a<i)&&(n++,a++);let o=n-i+1,l=this.modifiedSequence.slice(i,a+1);return l.length===1&&l[0]===this.originalSequence[n]?[{start:i,deleteCount:o-1}]:[{start:i,deleteCount:o,data:l}]}else return i<t?[{start:i,deleteCount:0,data:this.modifiedSequence.slice(i)}]:i<e?[{start:i,deleteCount:e-i}]:[]}};ri.SemanticTokensDiff=au;var Jp=class{constructor(){this._prevData=void 0,this.initialize()}initialize(){this._id=Date.now(),this._prevLine=0,this._prevChar=0,this._data=[],this._dataLen=0}push(e,t,i,n,a){let o=e,l=t;this._dataLen>0&&(o-=this._prevLine,o===0&&(l-=this._prevChar)),this._data[this._dataLen++]=o,this._data[this._dataLen++]=l,this._data[this._dataLen++]=i,this._data[this._dataLen++]=n,this._data[this._dataLen++]=a,this._prevLine=e,this._prevChar=t}get id(){return this._id.toString()}previousResult(e){this.id===e&&(this._prevData=this._data),this.initialize()}build(){return this._prevData=void 0,{resultId:this.id,data:this._data}}canBuildEdits(){return this._prevData!==void 0}buildEdits(){return this._prevData!==void 0?{resultId:this.id,edits:new au(this._prevData,this._data).computeDiff()}:this.build()}};ri.SemanticTokensBuilder=Jp});var ab=q(ou=>{"use strict";Object.defineProperty(ou,"__esModule",{value:!0});ou.ShowDocumentFeature=void 0;var W5=_e(),z5=r=>class extends r{showDocument(e){return this.connection.sendRequest(W5.ShowDocumentRequest.type,e)}};ou.ShowDocumentFeature=z5});var ob=q(lu=>{"use strict";Object.defineProperty(lu,"__esModule",{value:!0});lu.FileOperationsFeature=void 0;var On=_e(),K5=r=>class extends r{onDidCreateFiles(e){return this.connection.onNotification(On.DidCreateFilesNotification.type,t=>{e(t)})}onDidRenameFiles(e){return this.connection.onNotification(On.DidRenameFilesNotification.type,t=>{e(t)})}onDidDeleteFiles(e){return this.connection.onNotification(On.DidDeleteFilesNotification.type,t=>{e(t)})}onWillCreateFiles(e){return this.connection.onRequest(On.WillCreateFilesRequest.type,(t,i)=>e(t,i))}onWillRenameFiles(e){return this.connection.onRequest(On.WillRenameFilesRequest.type,(t,i)=>e(t,i))}onWillDeleteFiles(e){return this.connection.onRequest(On.WillDeleteFilesRequest.type,(t,i)=>e(t,i))}};lu.FileOperationsFeature=K5});var lb=q(uu=>{"use strict";Object.defineProperty(uu,"__esModule",{value:!0});uu.LinkedEditingRangeFeature=void 0;var Q5=_e(),$5=r=>class extends r{onLinkedEditingRange(e){return this.connection.onRequest(Q5.LinkedEditingRangeRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0))}};uu.LinkedEditingRangeFeature=$5});var ub=q(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});cu.TypeHierarchyFeature=void 0;var Zp=_e(),Y5=r=>class extends r{get typeHierarchy(){return{onPrepare:e=>this.connection.onRequest(Zp.TypeHierarchyPrepareRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),void 0)),onSupertypes:e=>{let t=Zp.TypeHierarchySupertypesRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))},onSubtypes:e=>{let t=Zp.TypeHierarchySubtypesRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};cu.TypeHierarchyFeature=Y5});var hb=q(hu=>{"use strict";Object.defineProperty(hu,"__esModule",{value:!0});hu.InlineValueFeature=void 0;var cb=_e(),J5=r=>class extends r{get inlineValue(){return{refresh:()=>this.connection.sendRequest(cb.InlineValueRefreshRequest.type),on:e=>this.connection.onRequest(cb.InlineValueRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t)))}}};hu.InlineValueFeature=J5});var pb=q(du=>{"use strict";Object.defineProperty(du,"__esModule",{value:!0});du.FoldingRangeFeature=void 0;var db=_e(),X5=r=>class extends r{get foldingRange(){return{refresh:()=>this.connection.sendRequest(db.FoldingRangeRefreshRequest.type),on:e=>{let t=db.FoldingRangeRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};du.FoldingRangeFeature=X5});var fb=q(pu=>{"use strict";Object.defineProperty(pu,"__esModule",{value:!0});pu.InlayHintFeature=void 0;var e3=_e(),Z5=r=>class extends r{get inlayHint(){return{refresh:()=>this.connection.sendRequest(e3.InlayHintRefreshRequest.type),on:e=>this.connection.onRequest(e3.InlayHintRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t))),resolve:e=>this.connection.onRequest(e3.InlayHintResolveRequest.type,(t,i)=>e(t,i))}}};pu.InlayHintFeature=Z5});var mb=q(fu=>{"use strict";Object.defineProperty(fu,"__esModule",{value:!0});fu.DiagnosticFeature=void 0;var Ws=_e(),e6=r=>class extends r{get diagnostics(){return{refresh:()=>this.connection.sendRequest(Ws.DiagnosticRefreshRequest.type),on:e=>this.connection.onRequest(Ws.DocumentDiagnosticRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),this.attachPartialResultProgress(Ws.DocumentDiagnosticRequest.partialResult,t))),onWorkspace:e=>this.connection.onRequest(Ws.WorkspaceDiagnosticRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t),this.attachPartialResultProgress(Ws.WorkspaceDiagnosticRequest.partialResult,t)))}}};fu.DiagnosticFeature=e6});var r3=q(mu=>{"use strict";Object.defineProperty(mu,"__esModule",{value:!0});mu.TextDocuments=void 0;var Mi=_e(),t3=class{constructor(e){this._configuration=e,this._syncedDocuments=new Map,this._onDidChangeContent=new Mi.Emitter,this._onDidOpen=new Mi.Emitter,this._onDidClose=new Mi.Emitter,this._onDidSave=new Mi.Emitter,this._onWillSave=new Mi.Emitter}get onDidOpen(){return this._onDidOpen.event}get onDidChangeContent(){return this._onDidChangeContent.event}get onWillSave(){return this._onWillSave.event}onWillSaveWaitUntil(e){this._willSaveWaitUntil=e}get onDidSave(){return this._onDidSave.event}get onDidClose(){return this._onDidClose.event}get(e){return this._syncedDocuments.get(e)}all(){return Array.from(this._syncedDocuments.values())}keys(){return Array.from(this._syncedDocuments.keys())}listen(e){e.__textDocumentSync=Mi.TextDocumentSyncKind.Incremental;let t=[];return t.push(e.onDidOpenTextDocument(i=>{let n=i.textDocument,a=this._configuration.create(n.uri,n.languageId,n.version,n.text);this._syncedDocuments.set(n.uri,a);let o=Object.freeze({document:a});this._onDidOpen.fire(o),this._onDidChangeContent.fire(o)})),t.push(e.onDidChangeTextDocument(i=>{let n=i.textDocument,a=i.contentChanges;if(a.length===0)return;let{version:o}=n;if(o==null)throw new Error(`Received document change event for ${n.uri} without valid version identifier`);let l=this._syncedDocuments.get(n.uri);l!==void 0&&(l=this._configuration.update(l,a,o),this._syncedDocuments.set(n.uri,l),this._onDidChangeContent.fire(Object.freeze({document:l})))})),t.push(e.onDidCloseTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&(this._syncedDocuments.delete(i.textDocument.uri),this._onDidClose.fire(Object.freeze({document:n})))})),t.push(e.onWillSaveTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&this._onWillSave.fire(Object.freeze({document:n,reason:i.reason}))})),t.push(e.onWillSaveTextDocumentWaitUntil((i,n)=>{let a=this._syncedDocuments.get(i.textDocument.uri);return a!==void 0&&this._willSaveWaitUntil?this._willSaveWaitUntil(Object.freeze({document:a,reason:i.reason}),n):[]})),t.push(e.onDidSaveTextDocument(i=>{let n=this._syncedDocuments.get(i.textDocument.uri);n!==void 0&&this._onDidSave.fire(Object.freeze({document:n}))})),Mi.Disposable.create(()=>{t.forEach(i=>i.dispose())})}};mu.TextDocuments=t3});var n3=q(In=>{"use strict";Object.defineProperty(In,"__esModule",{value:!0});In.NotebookDocuments=In.NotebookSyncFeature=void 0;var _t=_e(),xb=r3(),t6=r=>class extends r{get synchronization(){return{onDidOpenNotebookDocument:e=>this.connection.onNotification(_t.DidOpenNotebookDocumentNotification.type,t=>{e(t)}),onDidChangeNotebookDocument:e=>this.connection.onNotification(_t.DidChangeNotebookDocumentNotification.type,t=>{e(t)}),onDidSaveNotebookDocument:e=>this.connection.onNotification(_t.DidSaveNotebookDocumentNotification.type,t=>{e(t)}),onDidCloseNotebookDocument:e=>this.connection.onNotification(_t.DidCloseNotebookDocumentNotification.type,t=>{e(t)})}}};In.NotebookSyncFeature=t6;var xu=class r{onDidOpenTextDocument(e){return this.openHandler=e,_t.Disposable.create(()=>{this.openHandler=void 0})}openTextDocument(e){this.openHandler&&this.openHandler(e)}onDidChangeTextDocument(e){return this.changeHandler=e,_t.Disposable.create(()=>{this.changeHandler=e})}changeTextDocument(e){this.changeHandler&&this.changeHandler(e)}onDidCloseTextDocument(e){return this.closeHandler=e,_t.Disposable.create(()=>{this.closeHandler=void 0})}closeTextDocument(e){this.closeHandler&&this.closeHandler(e)}onWillSaveTextDocument(){return r.NULL_DISPOSE}onWillSaveTextDocumentWaitUntil(){return r.NULL_DISPOSE}onDidSaveTextDocument(){return r.NULL_DISPOSE}};xu.NULL_DISPOSE=Object.freeze({dispose:()=>{}});var i3=class{constructor(e){e instanceof xb.TextDocuments?this._cellTextDocuments=e:this._cellTextDocuments=new xb.TextDocuments(e),this.notebookDocuments=new Map,this.notebookCellMap=new Map,this._onDidOpen=new _t.Emitter,this._onDidChange=new _t.Emitter,this._onDidSave=new _t.Emitter,this._onDidClose=new _t.Emitter}get cellTextDocuments(){return this._cellTextDocuments}getCellTextDocument(e){return this._cellTextDocuments.get(e.document)}getNotebookDocument(e){return this.notebookDocuments.get(e)}getNotebookCell(e){let t=this.notebookCellMap.get(e);return t&&t[0]}findNotebookDocumentForCell(e){let t=typeof e=="string"?e:e.document,i=this.notebookCellMap.get(t);return i&&i[1]}get onDidOpen(){return this._onDidOpen.event}get onDidSave(){return this._onDidSave.event}get onDidChange(){return this._onDidChange.event}get onDidClose(){return this._onDidClose.event}listen(e){let t=new xu,i=[];return i.push(this.cellTextDocuments.listen(t)),i.push(e.notebooks.synchronization.onDidOpenNotebookDocument(n=>{this.notebookDocuments.set(n.notebookDocument.uri,n.notebookDocument);for(let a of n.cellTextDocuments)t.openTextDocument({textDocument:a});this.updateCellMap(n.notebookDocument),this._onDidOpen.fire(n.notebookDocument)})),i.push(e.notebooks.synchronization.onDidChangeNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);if(a===void 0)return;a.version=n.notebookDocument.version;let o=a.metadata,l=!1,h=n.change;h.metadata!==void 0&&(l=!0,a.metadata=h.metadata);let f=[],x=[],R=[],S=[];if(h.cells!==void 0){let z=h.cells;if(z.structure!==void 0){let L=z.structure.array;if(a.cells.splice(L.start,L.deleteCount,...L.cells!==void 0?L.cells:[]),z.structure.didOpen!==void 0)for(let v of z.structure.didOpen)t.openTextDocument({textDocument:v}),f.push(v.uri);if(z.structure.didClose)for(let v of z.structure.didClose)t.closeTextDocument({textDocument:v}),x.push(v.uri)}if(z.data!==void 0){let L=new Map(z.data.map(v=>[v.document,v]));for(let v=0;v<=a.cells.length;v++){let D=L.get(a.cells[v].document);if(D!==void 0){let I=a.cells.splice(v,1,D);if(R.push({old:I[0],new:D}),L.delete(D.document),L.size===0)break}}}if(z.textContent!==void 0)for(let L of z.textContent)t.changeTextDocument({textDocument:L.document,contentChanges:L.changes}),S.push(L.document.uri)}this.updateCellMap(a);let M={notebookDocument:a};l&&(M.metadata={old:o,new:a.metadata});let O=[];for(let z of f)O.push(this.getNotebookCell(z));let W=[];for(let z of x)W.push(this.getNotebookCell(z));let Y=[];for(let z of S)Y.push(this.getNotebookCell(z));(O.length>0||W.length>0||R.length>0||Y.length>0)&&(M.cells={added:O,removed:W,changed:{data:R,textContent:Y}}),(M.metadata!==void 0||M.cells!==void 0)&&this._onDidChange.fire(M)})),i.push(e.notebooks.synchronization.onDidSaveNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);a!==void 0&&this._onDidSave.fire(a)})),i.push(e.notebooks.synchronization.onDidCloseNotebookDocument(n=>{let a=this.notebookDocuments.get(n.notebookDocument.uri);if(a!==void 0){this._onDidClose.fire(a);for(let o of n.cellTextDocuments)t.closeTextDocument({textDocument:o});this.notebookDocuments.delete(n.notebookDocument.uri);for(let o of a.cells)this.notebookCellMap.delete(o.document)}})),_t.Disposable.create(()=>{i.forEach(n=>n.dispose())})}updateCellMap(e){for(let t of e.cells)this.notebookCellMap.set(t.document,[t,e])}};In.NotebookDocuments=i3});var bb=q(bu=>{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.MonikerFeature=void 0;var r6=_e(),i6=r=>class extends r{get moniker(){return{on:e=>{let t=r6.MonikerRequest.type;return this.connection.onRequest(t,(i,n)=>e(i,n,this.attachWorkDoneProgress(i),this.attachPartialResultProgress(t,i)))}}}};bu.MonikerFeature=i6});var c3=q(me=>{"use strict";Object.defineProperty(me,"__esModule",{value:!0});me.createConnection=me.combineFeatures=me.combineNotebooksFeatures=me.combineLanguagesFeatures=me.combineWorkspaceFeatures=me.combineWindowFeatures=me.combineClientFeatures=me.combineTracerFeatures=me.combineTelemetryFeatures=me.combineConsoleFeatures=me._NotebooksImpl=me._LanguagesImpl=me.BulkUnregistration=me.BulkRegistration=me.ErrorMessageTracker=void 0;var V=_e(),Vt=dl(),a3=Kp(),ie=rb(),n6=ib(),s6=nb(),a6=sb(),o6=Xp(),l6=ab(),u6=ob(),c6=lb(),h6=ub(),d6=hb(),p6=pb(),f6=fb(),m6=mb(),x6=n3(),b6=bb();function s3(r){if(r!==null)return r}var o3=class{constructor(){this._messages=Object.create(null)}add(e){let t=this._messages[e];t||(t=0),t++,this._messages[e]=t}sendErrors(e){Object.keys(this._messages).forEach(t=>{e.window.showErrorMessage(t)})}};me.ErrorMessageTracker=o3;var gu=class{constructor(){}rawAttach(e){this._rawConnection=e}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}fillServerCapabilities(e){}initialize(e){}error(e){this.send(V.MessageType.Error,e)}warn(e){this.send(V.MessageType.Warning,e)}info(e){this.send(V.MessageType.Info,e)}log(e){this.send(V.MessageType.Log,e)}debug(e){this.send(V.MessageType.Debug,e)}send(e,t){this._rawConnection&&this._rawConnection.sendNotification(V.LogMessageNotification.type,{type:e,message:t}).catch(()=>{(0,V.RAL)().console.error("Sending log message failed")})}},l3=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}showErrorMessage(e,...t){let i={type:V.MessageType.Error,message:e,actions:t};return this.connection.sendRequest(V.ShowMessageRequest.type,i).then(s3)}showWarningMessage(e,...t){let i={type:V.MessageType.Warning,message:e,actions:t};return this.connection.sendRequest(V.ShowMessageRequest.type,i).then(s3)}showInformationMessage(e,...t){let i={type:V.MessageType.Info,message:e,actions:t};return this.connection.sendRequest(V.ShowMessageRequest.type,i).then(s3)}},gb=(0,l6.ShowDocumentFeature)((0,ie.ProgressFeature)(l3)),Rb;(function(r){function e(){return new Ru}r.create=e})(Rb||(me.BulkRegistration=Rb={}));var Ru=class{constructor(){this._registrations=[],this._registered=new Set}add(e,t){let i=Vt.string(e)?e:e.method;if(this._registered.has(i))throw new Error(`${i} is already added to this registration`);let n=a3.generateUuid();this._registrations.push({id:n,method:i,registerOptions:t||{}}),this._registered.add(i)}asRegistrationParams(){return{registrations:this._registrations}}},yb;(function(r){function e(){return new zs(void 0,[])}r.create=e})(yb||(me.BulkUnregistration=yb={}));var zs=class{constructor(e,t){this._connection=e,this._unregistrations=new Map,t.forEach(i=>{this._unregistrations.set(i.method,i)})}get isAttached(){return!!this._connection}attach(e){this._connection=e}add(e){this._unregistrations.set(e.method,e)}dispose(){let e=[];for(let i of this._unregistrations.values())e.push(i);let t={unregisterations:e};this._connection.sendRequest(V.UnregistrationRequest.type,t).catch(()=>{this._connection.console.info("Bulk unregistration failed.")})}disposeSingle(e){let t=Vt.string(e)?e:e.method,i=this._unregistrations.get(t);if(!i)return!1;let n={unregisterations:[i]};return this._connection.sendRequest(V.UnregistrationRequest.type,n).then(()=>{this._unregistrations.delete(t)},a=>{this._connection.console.info(`Un-registering request handler for ${i.id} failed.`)}),!0}},yu=class{attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}register(e,t,i){return e instanceof Ru?this.registerMany(e):e instanceof zs?this.registerSingle1(e,t,i):this.registerSingle2(e,t)}registerSingle1(e,t,i){let n=Vt.string(t)?t:t.method,a=a3.generateUuid(),o={registrations:[{id:a,method:n,registerOptions:i||{}}]};return e.isAttached||e.attach(this.connection),this.connection.sendRequest(V.RegistrationRequest.type,o).then(l=>(e.add({id:a,method:n}),e),l=>(this.connection.console.info(`Registering request handler for ${n} failed.`),Promise.reject(l)))}registerSingle2(e,t){let i=Vt.string(e)?e:e.method,n=a3.generateUuid(),a={registrations:[{id:n,method:i,registerOptions:t||{}}]};return this.connection.sendRequest(V.RegistrationRequest.type,a).then(o=>V.Disposable.create(()=>{this.unregisterSingle(n,i).catch(()=>{this.connection.console.info(`Un-registering capability with id ${n} failed.`)})}),o=>(this.connection.console.info(`Registering request handler for ${i} failed.`),Promise.reject(o)))}unregisterSingle(e,t){let i={unregisterations:[{id:e,method:t}]};return this.connection.sendRequest(V.UnregistrationRequest.type,i).catch(()=>{this.connection.console.info(`Un-registering request handler for ${e} failed.`)})}registerMany(e){let t=e.asRegistrationParams();return this.connection.sendRequest(V.RegistrationRequest.type,t).then(()=>new zs(this._connection,t.registrations.map(i=>({id:i.id,method:i.method}))),i=>(this.connection.console.info("Bulk registration failed."),Promise.reject(i)))}},u3=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}applyEdit(e){function t(n){return n&&!!n.edit}let i=t(e)?e:{edit:e};return this.connection.sendRequest(V.ApplyWorkspaceEditRequest.type,i)}},Cb=(0,u6.FileOperationsFeature)((0,s6.WorkspaceFoldersFeature)((0,n6.ConfigurationFeature)(u3))),Cu=class{constructor(){this._trace=V.Trace.Off}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}set trace(e){this._trace=e}log(e,t){this._trace!==V.Trace.Off&&this.connection.sendNotification(V.LogTraceNotification.type,{message:e,verbose:this._trace===V.Trace.Verbose?t:void 0}).catch(()=>{})}},vu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}logEvent(e){this.connection.sendNotification(V.TelemetryEventNotification.type,e).catch(()=>{this.connection.console.log("Sending TelemetryEventNotification failed")})}},Eu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ie.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,t){return(0,ie.attachPartialResult)(this.connection,t)}};me._LanguagesImpl=Eu;var vb=(0,p6.FoldingRangeFeature)((0,b6.MonikerFeature)((0,m6.DiagnosticFeature)((0,f6.InlayHintFeature)((0,d6.InlineValueFeature)((0,h6.TypeHierarchyFeature)((0,c6.LinkedEditingRangeFeature)((0,o6.SemanticTokensFeature)((0,a6.CallHierarchyFeature)(Eu))))))))),Lu=class{constructor(){}attach(e){this._connection=e}get connection(){if(!this._connection)throw new Error("Remote is not attached to a connection yet.");return this._connection}initialize(e){}fillServerCapabilities(e){}attachWorkDoneProgress(e){return(0,ie.attachWorkDone)(this.connection,e)}attachPartialResultProgress(e,t){return(0,ie.attachPartialResult)(this.connection,t)}};me._NotebooksImpl=Lu;var Eb=(0,x6.NotebookSyncFeature)(Lu);function Lb(r,e){return function(t){return e(r(t))}}me.combineConsoleFeatures=Lb;function Sb(r,e){return function(t){return e(r(t))}}me.combineTelemetryFeatures=Sb;function Pb(r,e){return function(t){return e(r(t))}}me.combineTracerFeatures=Pb;function Tb(r,e){return function(t){return e(r(t))}}me.combineClientFeatures=Tb;function Ab(r,e){return function(t){return e(r(t))}}me.combineWindowFeatures=Ab;function Mb(r,e){return function(t){return e(r(t))}}me.combineWorkspaceFeatures=Mb;function Nb(r,e){return function(t){return e(r(t))}}me.combineLanguagesFeatures=Nb;function Ub(r,e){return function(t){return e(r(t))}}me.combineNotebooksFeatures=Ub;function g6(r,e){function t(n,a,o){return n&&a?o(n,a):n||a}return{__brand:"features",console:t(r.console,e.console,Lb),tracer:t(r.tracer,e.tracer,Pb),telemetry:t(r.telemetry,e.telemetry,Sb),client:t(r.client,e.client,Tb),window:t(r.window,e.window,Ab),workspace:t(r.workspace,e.workspace,Mb),languages:t(r.languages,e.languages,Nb),notebooks:t(r.notebooks,e.notebooks,Ub)}}me.combineFeatures=g6;function R6(r,e,t){let i=t&&t.console?new(t.console(gu)):new gu,n=r(i);i.rawAttach(n);let a=t&&t.tracer?new(t.tracer(Cu)):new Cu,o=t&&t.telemetry?new(t.telemetry(vu)):new vu,l=t&&t.client?new(t.client(yu)):new yu,h=t&&t.window?new(t.window(gb)):new gb,f=t&&t.workspace?new(t.workspace(Cb)):new Cb,x=t&&t.languages?new(t.languages(vb)):new vb,R=t&&t.notebooks?new(t.notebooks(Eb)):new Eb,S=[i,a,o,l,h,f,x,R];function M(L){return L instanceof Promise?L:Vt.thenable(L)?new Promise((v,D)=>{L.then(I=>v(I),I=>D(I))}):Promise.resolve(L)}let O,W,Y,z={listen:()=>n.listen(),sendRequest:(L,...v)=>n.sendRequest(Vt.string(L)?L:L.method,...v),onRequest:(L,v)=>n.onRequest(L,v),sendNotification:(L,v)=>{let D=Vt.string(L)?L:L.method;return n.sendNotification(D,v)},onNotification:(L,v)=>n.onNotification(L,v),onProgress:n.onProgress,sendProgress:n.sendProgress,onInitialize:L=>(W=L,{dispose:()=>{W=void 0}}),onInitialized:L=>n.onNotification(V.InitializedNotification.type,L),onShutdown:L=>(O=L,{dispose:()=>{O=void 0}}),onExit:L=>(Y=L,{dispose:()=>{Y=void 0}}),get console(){return i},get telemetry(){return o},get tracer(){return a},get client(){return l},get window(){return h},get workspace(){return f},get languages(){return x},get notebooks(){return R},onDidChangeConfiguration:L=>n.onNotification(V.DidChangeConfigurationNotification.type,L),onDidChangeWatchedFiles:L=>n.onNotification(V.DidChangeWatchedFilesNotification.type,L),__textDocumentSync:void 0,onDidOpenTextDocument:L=>n.onNotification(V.DidOpenTextDocumentNotification.type,L),onDidChangeTextDocument:L=>n.onNotification(V.DidChangeTextDocumentNotification.type,L),onDidCloseTextDocument:L=>n.onNotification(V.DidCloseTextDocumentNotification.type,L),onWillSaveTextDocument:L=>n.onNotification(V.WillSaveTextDocumentNotification.type,L),onWillSaveTextDocumentWaitUntil:L=>n.onRequest(V.WillSaveTextDocumentWaitUntilRequest.type,L),onDidSaveTextDocument:L=>n.onNotification(V.DidSaveTextDocumentNotification.type,L),sendDiagnostics:L=>n.sendNotification(V.PublishDiagnosticsNotification.type,L),onHover:L=>n.onRequest(V.HoverRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),onCompletion:L=>n.onRequest(V.CompletionRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onCompletionResolve:L=>n.onRequest(V.CompletionResolveRequest.type,L),onSignatureHelp:L=>n.onRequest(V.SignatureHelpRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),onDeclaration:L=>n.onRequest(V.DeclarationRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onDefinition:L=>n.onRequest(V.DefinitionRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onTypeDefinition:L=>n.onRequest(V.TypeDefinitionRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onImplementation:L=>n.onRequest(V.ImplementationRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onReferences:L=>n.onRequest(V.ReferencesRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onDocumentHighlight:L=>n.onRequest(V.DocumentHighlightRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onDocumentSymbol:L=>n.onRequest(V.DocumentSymbolRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onWorkspaceSymbol:L=>n.onRequest(V.WorkspaceSymbolRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onWorkspaceSymbolResolve:L=>n.onRequest(V.WorkspaceSymbolResolveRequest.type,L),onCodeAction:L=>n.onRequest(V.CodeActionRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onCodeActionResolve:L=>n.onRequest(V.CodeActionResolveRequest.type,(v,D)=>L(v,D)),onCodeLens:L=>n.onRequest(V.CodeLensRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onCodeLensResolve:L=>n.onRequest(V.CodeLensResolveRequest.type,(v,D)=>L(v,D)),onDocumentFormatting:L=>n.onRequest(V.DocumentFormattingRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),onDocumentRangeFormatting:L=>n.onRequest(V.DocumentRangeFormattingRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),onDocumentOnTypeFormatting:L=>n.onRequest(V.DocumentOnTypeFormattingRequest.type,(v,D)=>L(v,D)),onRenameRequest:L=>n.onRequest(V.RenameRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),onPrepareRename:L=>n.onRequest(V.PrepareRenameRequest.type,(v,D)=>L(v,D)),onDocumentLinks:L=>n.onRequest(V.DocumentLinkRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onDocumentLinkResolve:L=>n.onRequest(V.DocumentLinkResolveRequest.type,(v,D)=>L(v,D)),onDocumentColor:L=>n.onRequest(V.DocumentColorRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onColorPresentation:L=>n.onRequest(V.ColorPresentationRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onFoldingRanges:L=>n.onRequest(V.FoldingRangeRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onSelectionRanges:L=>n.onRequest(V.SelectionRangeRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),(0,ie.attachPartialResult)(n,v))),onExecuteCommand:L=>n.onRequest(V.ExecuteCommandRequest.type,(v,D)=>L(v,D,(0,ie.attachWorkDone)(n,v),void 0)),dispose:()=>n.dispose()};for(let L of S)L.attach(z);return n.onRequest(V.InitializeRequest.type,L=>{e.initialize(L),Vt.string(L.trace)&&(a.trace=V.Trace.fromString(L.trace));for(let v of S)v.initialize(L.capabilities);if(W){let v=W(L,new V.CancellationTokenSource().token,(0,ie.attachWorkDone)(n,L),void 0);return M(v).then(D=>{if(D instanceof V.ResponseError)return D;let I=D;I||(I={capabilities:{}});let J=I.capabilities;J||(J={},I.capabilities=J),J.textDocumentSync===void 0||J.textDocumentSync===null?J.textDocumentSync=Vt.number(z.__textDocumentSync)?z.__textDocumentSync:V.TextDocumentSyncKind.None:!Vt.number(J.textDocumentSync)&&!Vt.number(J.textDocumentSync.change)&&(J.textDocumentSync.change=Vt.number(z.__textDocumentSync)?z.__textDocumentSync:V.TextDocumentSyncKind.None);for(let te of S)te.fillServerCapabilities(J);return I})}else{let v={capabilities:{textDocumentSync:V.TextDocumentSyncKind.None}};for(let D of S)D.fillServerCapabilities(v.capabilities);return v}}),n.onRequest(V.ShutdownRequest.type,()=>{if(e.shutdownReceived=!0,O)return O(new V.CancellationTokenSource().token)}),n.onNotification(V.ExitNotification.type,()=>{try{Y&&Y()}finally{e.shutdownReceived?e.exit(0):e.exit(1)}}),n.onNotification(V.SetTraceNotification.type,L=>{a.trace=V.Trace.fromString(L.value)}),z}me.createConnection=R6});var wb=q(Tt=>{"use strict";Object.defineProperty(Tt,"__esModule",{value:!0});Tt.resolveModulePath=Tt.FileSystem=Tt.resolveGlobalYarnPath=Tt.resolveGlobalNodePath=Tt.resolve=Tt.uriToFilePath=void 0;var y6=kt("url"),ir=kt("path"),h3=kt("fs"),m3=kt("child_process");function C6(r){let e=y6.parse(r);if(e.protocol!=="file:"||!e.path)return;let t=e.path.split("/");for(var i=0,n=t.length;i<n;i++)t[i]=decodeURIComponent(t[i]);if(process.platform==="win32"&&t.length>1){let a=t[0],o=t[1];a.length===0&&o.length>1&&o[1]===":"&&t.shift()}return ir.normalize(t.join("/"))}Tt.uriToFilePath=C6;function d3(){return process.platform==="win32"}function Su(r,e,t,i){let n="NODE_PATH",a=["var p = process;","p.on('message',function(m){","if(m.c==='e'){","p.exit(0);","}","else if(m.c==='rs'){","try{","var r=require.resolve(m.a);","p.send({c:'r',s:true,r:r});","}","catch(err){","p.send({c:'r',s:false});","}","}","});"].join("");return new Promise((o,l)=>{let h=process.env,f=Object.create(null);Object.keys(h).forEach(x=>f[x]=h[x]),e&&h3.existsSync(e)&&(f[n]?f[n]=e+ir.delimiter+f[n]:f[n]=e,i&&i(`NODE_PATH value is: ${f[n]}`)),f.ELECTRON_RUN_AS_NODE="1";try{let x=(0,m3.fork)("",[],{cwd:t,env:f,execArgv:["-e",a]});if(x.pid===void 0){l(new Error(`Starting process to resolve node module ${r} failed`));return}x.on("error",S=>{l(S)}),x.on("message",S=>{S.c==="r"&&(x.send({c:"e"}),S.s?o(S.r):l(new Error(`Failed to resolve module: ${r}`)))});let R={c:"rs",a:r};x.send(R)}catch(x){l(x)}})}Tt.resolve=Su;function p3(r){let e="npm",t=Object.create(null);Object.keys(process.env).forEach(a=>t[a]=process.env[a]),t.NO_UPDATE_NOTIFIER="true";let i={encoding:"utf8",env:t};d3()&&(e="npm.cmd",i.shell=!0);let n=()=>{};try{process.on("SIGPIPE",n);let a=(0,m3.spawnSync)(e,["config","get","prefix"],i).stdout;if(!a){r&&r("'npm config get prefix' didn't return a value.");return}let o=a.trim();return r&&r(`'npm config get prefix' value is: ${o}`),o.length>0?d3()?ir.join(o,"node_modules"):ir.join(o,"lib","node_modules"):void 0}catch{return}finally{process.removeListener("SIGPIPE",n)}}Tt.resolveGlobalNodePath=p3;function v6(r){let e="yarn",t={encoding:"utf8"};d3()&&(e="yarn.cmd",t.shell=!0);let i=()=>{};try{process.on("SIGPIPE",i);let n=(0,m3.spawnSync)(e,["global","dir","--json"],t),a=n.stdout;if(!a){r&&(r("'yarn global dir' didn't return a value."),n.stderr&&r(n.stderr));return}let o=a.trim().split(/\r?\n/);for(let l of o)try{let h=JSON.parse(l);if(h.type==="log")return ir.join(h.data,"node_modules")}catch{}return}catch{return}finally{process.removeListener("SIGPIPE",i)}}Tt.resolveGlobalYarnPath=v6;var f3;(function(r){let e;function t(){return e!==void 0||(process.platform==="win32"?e=!1:e=!h3.existsSync(__filename.toUpperCase())||!h3.existsSync(__filename.toLowerCase())),e}r.isCaseSensitive=t;function i(n,a){return t()?ir.normalize(a).indexOf(ir.normalize(n))===0:ir.normalize(a).toLowerCase().indexOf(ir.normalize(n).toLowerCase())===0}r.isParent=i})(f3||(Tt.FileSystem=f3={}));function E6(r,e,t,i){return t?(ir.isAbsolute(t)||(t=ir.join(r,t)),Su(e,t,t,i).then(n=>f3.isParent(t,n)?n:Promise.reject(new Error(`Failed to load ${e} from node path location.`))).then(void 0,n=>Su(e,p3(i),r,i))):Su(e,p3(i),r,i)}Tt.resolveModulePath=E6});var x3=q(($y,Db)=>{"use strict";Db.exports=_e()});var Ob=q(Pu=>{"use strict";Object.defineProperty(Pu,"__esModule",{value:!0});Pu.InlineCompletionFeature=void 0;var L6=_e(),S6=r=>class extends r{get inlineCompletion(){return{on:e=>this.connection.onRequest(L6.InlineCompletionRequest.type,(t,i)=>e(t,i,this.attachWorkDoneProgress(t)))}}};Pu.InlineCompletionFeature=S6});var Fb=q(ht=>{"use strict";var P6=ht&&ht.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),kb=ht&&ht.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&P6(e,r,t)};Object.defineProperty(ht,"__esModule",{value:!0});ht.ProposedFeatures=ht.NotebookDocuments=ht.TextDocuments=ht.SemanticTokensBuilder=void 0;var T6=Xp();Object.defineProperty(ht,"SemanticTokensBuilder",{enumerable:!0,get:function(){return T6.SemanticTokensBuilder}});var A6=Ob();kb(_e(),ht);var M6=r3();Object.defineProperty(ht,"TextDocuments",{enumerable:!0,get:function(){return M6.TextDocuments}});var N6=n3();Object.defineProperty(ht,"NotebookDocuments",{enumerable:!0,get:function(){return N6.NotebookDocuments}});kb(c3(),ht);var Ib;(function(r){r.all={__brand:"features",languages:A6.InlineCompletionFeature}})(Ib||(ht.ProposedFeatures=Ib={}))});var jb=q(qt=>{"use strict";var U6=qt&&qt.__createBinding||(Object.create?(function(r,e,t,i){i===void 0&&(i=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,i,n)}):(function(r,e,t,i){i===void 0&&(i=t),r[i]=e[t]})),Vb=qt&&qt.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&U6(e,r,t)};Object.defineProperty(qt,"__esModule",{value:!0});qt.createConnection=qt.Files=void 0;var Hb=kt("node:util"),b3=dl(),w6=c3(),Ks=wb(),Ni=x3();Vb(x3(),qt);Vb(Fb(),qt);var Bb;(function(r){r.uriToFilePath=Ks.uriToFilePath,r.resolveGlobalNodePath=Ks.resolveGlobalNodePath,r.resolveGlobalYarnPath=Ks.resolveGlobalYarnPath,r.resolve=Ks.resolve,r.resolveModulePath=Ks.resolveModulePath})(Bb||(qt.Files=Bb={}));var _b;function Tu(){if(_b!==void 0)try{_b.end()}catch{}}var kn=!1,qb;function D6(){let r="--clientProcessId";function e(t){try{let i=parseInt(t);isNaN(i)||(qb=setInterval(()=>{try{process.kill(i,0)}catch{Tu(),process.exit(kn?0:1)}},3e3))}catch{}}for(let t=2;t<process.argv.length;t++){let i=process.argv[t];if(i===r&&t+1<process.argv.length){e(process.argv[t+1]);return}else{let n=i.split("=");n[0]===r&&e(n[1])}}}D6();var O6={initialize:r=>{let e=r.processId;b3.number(e)&&qb===void 0&&setInterval(()=>{try{process.kill(e,0)}catch{process.exit(kn?0:1)}},3e3)},get shutdownReceived(){return kn},set shutdownReceived(r){kn=r},exit:r=>{Tu(),process.exit(r)}};function I6(r,e,t,i){let n,a,o,l;return r!==void 0&&r.__brand==="features"&&(n=r,r=e,e=t,t=i),Ni.ConnectionStrategy.is(r)||Ni.ConnectionOptions.is(r)?l=r:(a=r,o=e,l=t),k6(a,o,l,n)}qt.createConnection=I6;function k6(r,e,t,i){let n=!1;if(!r&&!e&&process.argv.length>2){let h,f,x=process.argv.slice(2);for(let R=0;R<x.length;R++){let S=x[R];if(S==="--node-ipc"){r=new Ni.IPCMessageReader(process),e=new Ni.IPCMessageWriter(process);break}else if(S==="--stdio"){n=!0,r=process.stdin,e=process.stdout;break}else if(S==="--socket"){h=parseInt(x[R+1]);break}else if(S==="--pipe"){f=x[R+1];break}else{var a=S.split("=");if(a[0]==="--socket"){h=parseInt(a[1]);break}else if(a[0]==="--pipe"){f=a[1];break}}}if(h){let R=(0,Ni.createServerSocketTransport)(h);r=R[0],e=R[1]}else if(f){let R=(0,Ni.createServerPipeTransport)(f);r=R[0],e=R[1]}}var o="Use arguments of createConnection or set command line parameters: '--node-ipc', '--stdio' or '--socket={number}'";if(!r)throw new Error("Connection input stream is not set. "+o);if(!e)throw new Error("Connection output stream is not set. "+o);if(b3.func(r.read)&&b3.func(r.on)){let h=r;h.on("end",()=>{Tu(),process.exit(kn?0:1)}),h.on("close",()=>{Tu(),process.exit(kn?0:1)})}let l=h=>{let f=(0,Ni.createProtocolConnection)(r,e,h,t);return n&&F6(h),f};return(0,w6.createConnection)(l,O6,i)}function F6(r){function e(i){return i.map(n=>typeof n=="string"?n:(0,Hb.inspect)(n)).join(" ")}let t=new Map;console.assert=function(n,...a){if(!n)if(a.length===0)r.error("Assertion failed");else{let[o,...l]=a;r.error(`Assertion failed: ${o} ${e(l)}`)}},console.count=function(n="default"){let a=String(n),o=t.get(a)??0;o+=1,t.set(a,o),r.log(`${a}: ${a}`)},console.countReset=function(n){n===void 0?t.clear():t.delete(String(n))},console.debug=function(...n){r.log(e(n))},console.dir=function(n,a){r.log((0,Hb.inspect)(n,a))},console.log=function(...n){r.log(e(n))},console.error=function(...n){r.error(e(n))},console.trace=function(...n){let a=new Error().stack.replace(/(.+\n){2}/,""),o="Trace";n.length!==0&&(o+=`: ${e(n)}`),r.log(`${o}
37
- ${a}`)},console.warn=function(...n){r.warn(e(n))}}});var mt=q((e9,Gb)=>{"use strict";Gb.exports=jb()});var Jt=vt(mt(),1);import{dirname as e7,join as t7}from"node:path";import{fileURLToPath as r7}from"node:url";import{Worker as i7}from"node:worker_threads";var Au=class r{constructor(e,t,i,n){this._uri=e,this._languageId=t,this._version=i,this._content=n,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(t,i)}return this._content}update(e,t){for(let i of e)if(r.isIncremental(i)){let n=Kb(i.range),a=this.offsetAt(n.start),o=this.offsetAt(n.end);this._content=this._content.substring(0,a)+i.text+this._content.substring(o,this._content.length);let l=Math.max(n.start.line,0),h=Math.max(n.end.line,0),f=this._lineOffsets,x=Wb(i.text,!1,a);if(h-l===x.length)for(let S=0,M=x.length;S<M;S++)f[S+l+1]=x[S];else x.length<1e4?f.splice(l+1,h-l,...x):this._lineOffsets=f=f.slice(0,l+1).concat(x,f.slice(h+1));let R=i.text.length-(o-a);if(R!==0)for(let S=l+1+x.length,M=f.length;S<M;S++)f[S]=f[S]+R}else if(r.isFull(i))this._content=i.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=t}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Wb(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),i=0,n=t.length;if(n===0)return{line:0,character:e};for(;i<n;){let o=Math.floor((i+n)/2);t[o]>e?n=o:i=o+1}let a=i-1;return e=this.ensureBeforeEOL(e,t[a]),{line:a,character:e-t[a]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let i=t[e.line];if(e.character<=0)return i;let n=e.line+1<t.length?t[e.line+1]:this._content.length,a=Math.min(i+e.character,n);return this.ensureBeforeEOL(a,i)}ensureBeforeEOL(e,t){for(;e>t&&zb(this._content.charCodeAt(e-1));)e--;return e}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range!==void 0&&(t.rangeLength===void 0||typeof t.rangeLength=="number")}static isFull(e){let t=e;return t!=null&&typeof t.text=="string"&&t.range===void 0&&t.rangeLength===void 0}},Mu;(function(r){function e(n,a,o,l){return new Au(n,a,o,l)}r.create=e;function t(n,a,o){if(n instanceof Au)return n.update(a,o),n;throw new Error("TextDocument.update: document must be created by TextDocument.create")}r.update=t;function i(n,a){let o=n.getText(),l=g3(a.map(H6),(x,R)=>{let S=x.range.start.line-R.range.start.line;return S===0?x.range.start.character-R.range.start.character:S}),h=0,f=[];for(let x of l){let R=n.offsetAt(x.range.start);if(R<h)throw new Error("Overlapping edit");R>h&&f.push(o.substring(h,R)),x.newText.length&&f.push(x.newText),h=n.offsetAt(x.range.end)}return f.push(o.substr(h)),f.join("")}r.applyEdits=i})(Mu||(Mu={}));function g3(r,e){if(r.length<=1)return r;let t=r.length/2|0,i=r.slice(0,t),n=r.slice(t);g3(i,e),g3(n,e);let a=0,o=0,l=0;for(;a<i.length&&o<n.length;)e(i[a],n[o])<=0?r[l++]=i[a++]:r[l++]=n[o++];for(;a<i.length;)r[l++]=i[a++];for(;o<n.length;)r[l++]=n[o++];return r}function Wb(r,e,t=0){let i=e?[t]:[];for(let n=0;n<r.length;n++){let a=r.charCodeAt(n);zb(a)&&(a===13&&n+1<r.length&&r.charCodeAt(n+1)===10&&n++,i.push(t+n+1))}return i}function zb(r){return r===13||r===10}function Kb(r){let e=r.start,t=r.end;return e.line>t.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:r}function H6(r){let e=Kb(r.range);return e!==r.range?{newText:r.newText,range:e}:r}var B6=Object.defineProperty,E=(r,e)=>B6(r,"name",{value:e,configurable:!0}),Iu;(r=>{r.EOF=-1,r.UNKNOWN_SOURCE_NAME="<unknown>"})(Iu||(Iu={}));var w;(r=>{r.INVALID_TYPE=0,r.EPSILON=-2,r.MIN_USER_TOKEN_TYPE=1,r.EOF=Iu.EOF,r.DEFAULT_CHANNEL=0,r.HIDDEN_CHANNEL=1,r.MIN_USER_CHANNEL_VALUE=2})(w||(w={}));var _6=E(r=>{let e=r;return e.tokenSource!==void 0&&e.channel!==void 0},"isToken"),Cr=class{static{E(this,"BitSet")}data;constructor(r){r?this.data=new Uint32Array(r.map(e=>e>>>0)):this.data=new Uint32Array(1)}[Symbol.iterator](){let r=this.data.length,e=0,t=this.data[e],i=this.data;return{[Symbol.iterator](){return this},next:E(()=>{for(;e<r;)if(t!==0){let n=t&-t,a=(e<<5)+this.bitCount(n-1);return t^=n,{done:!1,value:a}}else e++,e<r&&(t=i[e]);return{done:!0,value:void 0}},"next")}}clear(r){r===void 0?this.data=new Uint32Array:(this.resize(r),this.data[r>>>5]&=~(1<<r))}or(r){let e=Math.min(this.data.length,r.data.length);for(let t=0;t<e;++t)this.data[t]|=r.data[t];if(this.data.length<r.data.length){this.resize((r.data.length<<5)-1);let t=r.data.length;for(let i=e;i<t;++i)this.data[i]=r.data[i]}}get(r){if(r<0)throw new RangeError("index cannot be negative");let e=r>>>5;return e>=this.data.length?!1:(this.data[e]&1<<r%32)!==0}get length(){let r=0,e=this.data.length,t=this.data;for(let i=0;i<e;i++)r+=this.bitCount(t[i]);return r}values(){let r=new Array(this.length),e=0,t=this.data.length;for(let i=0;i<t;++i){let n=this.data[i];for(;n!==0;){let a=n&-n;r[e++]=(i<<5)+this.bitCount(a-1),n^=a}}return r}nextSetBit(r){if(r<0)throw new RangeError("index cannot be negative");for(let e of this)if(e>=r)return e}set(r){if(r<0)throw new RangeError("index cannot be negative");this.resize(r),this.data[r>>>5]|=1<<r%32}toString(){return"{"+this.values().join(", ")+"}"}resize(r){let e=r+32>>>5;if(e<=this.data.length)return;let t=new Uint32Array(e);t.set(this.data),t.fill(0,this.data.length),this.data=t}bitCount(r){return r=r-(r>>1&1431655765),r=(r&858993459)+(r>>2&858993459),r=r+(r>>4)&252645135,r=r+(r>>8),r=r+(r>>16),r&63}},V6=3432918353,q6=461845907,Qb=15,$b=13,j6=5,G6=3864292196,H=class $s{static{E(this,"MurmurHash")}static defaultSeed=701;constructor(){}static initialize(e=$s.defaultSeed){return e}static updateFromComparable(e,t){return this.update(e,t?.hashCode()??0)}static update(e,t){return t=Math.imul(t,V6),t=t<<Qb|t>>>32-Qb,t=Math.imul(t,q6),e=e^t,e=e<<$b|e>>>32-$b,e=Math.imul(e,j6)+G6,e}static finish(e,t){return e^=t*4,e^=e>>>16,e=Math.imul(e,2246822507),e^=e>>>13,e=Math.imul(e,3266489909),e^=e>>>16,e}static hashCode(e,t){return $s.finish($s.update(t??$s.defaultSeed,e),1)}},Ii=class lg{static{E(this,"ObjectEqualityComparator")}static instance=new lg;hashCode(e){return e==null?0:e.hashCode()}equals(e,t){return e==null?t==null:e.equals(t)}},ug=class cg{static{E(this,"DefaultEqualityComparator")}static instance=new cg;hashCode(e){return e==null?0:Ii.instance.hashCode(e)}equals(e,t){return e==null?t==null:typeof e=="string"||typeof e=="number"?e===t:Ii.instance.equals(e,t)}},Wt=class sr{static{E(this,"HashSet")}static defaultLoadFactor=.75;static initialCapacity=16;comparator;buckets;threshold;itemCount=0;constructor(e,t=sr.initialCapacity){if(e instanceof sr){this.comparator=e.comparator,this.buckets=e.buckets.slice(0);for(let i=0;i<this.buckets.length;i++){let n=this.buckets[i];n&&(this.buckets[i]=n.slice(0))}this.itemCount=e.itemCount,this.threshold=e.threshold}else this.comparator=e??ug.instance,this.buckets=this.createBuckets(t),this.threshold=Math.floor(sr.initialCapacity*sr.defaultLoadFactor)}getOrAdd(e){this.itemCount>this.threshold&&this.expand();let t=this.getBucket(e),i=this.buckets[t];if(!i)return i=[e],this.buckets[t]=i,++this.itemCount,e;for(let n of i)if(this.comparator.equals(n,e))return n;return i.push(e),++this.itemCount,e}get(e){if(e==null)return e;let t=this.getBucket(e),i=this.buckets[t];if(i){for(let n of i)if(this.comparator.equals(n,e))return n}}remove(e){if(e==null)return!1;let t=this.getBucket(e),i=this.buckets[t];if(!i)return!1;for(let n=0;n<i.length;n++){let a=i[n];if(this.comparator.equals(a,e))return i.splice(n,1),--this.itemCount,!0}return!1}hashCode(){let e=H.initialize();for(let t of this.buckets)if(t!=null)for(let i of t){if(i==null)break;e=H.update(e,this.comparator.hashCode(i))}return e=H.finish(e,this.size),e}equals(e){return e===this?!0:!(e instanceof sr)||e.size!==this.size?!1:this.containsAll(e)}add(e){return this.getOrAdd(e)===e}contains(e){return this.containsFast(e)}containsFast(e){return e==null?!1:this.get(e)!==void 0}*[Symbol.iterator](){yield*this.toArray()}toArray(){let e=new Array(this.size),t=0;for(let i of this.buckets)if(i!=null)for(let n of i){if(n==null)break;e[t++]=n}return e}containsAll(e){if(e instanceof sr){for(let t of e.buckets)if(t!=null)for(let i of t){if(i==null)break;if(!this.containsFast(i))return!1}}else for(let t of e)if(!this.containsFast(t))return!1;return!0}addAll(e){let t=!1;for(let i of e)this.getOrAdd(i)!==i&&(t=!0);return t}clear(){this.buckets=this.createBuckets(sr.initialCapacity),this.itemCount=0,this.threshold=Math.floor(sr.initialCapacity*sr.defaultLoadFactor)}toString(){if(this.size===0)return"{}";let e="{",t=!0;for(let i of this.buckets)if(i!=null)for(let n of i){if(n==null)break;t?t=!1:e+=", ",e+=n.toString()}return e+="}",e}toTableString(){let e="";for(let t of this.buckets){if(t==null){e+=`null
38
- `;continue}e+="[";let i=!0;for(let n of t)i?i=!1:e+=" ",n==null?e+="_":e+=n.toString();e+=`]
39
- `}return e}getBucket(e){return this.comparator.hashCode(e)&this.buckets.length-1}expand(){let e=this.buckets,t=this.buckets.length*2,i=this.createBuckets(t);this.buckets=i,this.threshold=Math.floor(t*sr.defaultLoadFactor);for(let n of e)if(n)for(let a of n){let o=this.getBucket(a),l=this.buckets[o];l||(l=[],this.buckets[o]=l),l.push(a)}}get size(){return this.itemCount}get isEmpty(){return this.itemCount===0}createBuckets(e){return new Array(e)}},ye=class jt{static{E(this,"Interval")}static INVALID_INTERVAL=new jt(-1,-2);static INTERVAL_POOL_MAX_VALUE=1e3;static cache=[];start;stop;cachedHashCode;constructor(e,t){this.start=e,this.stop=t,this.cachedHashCode=Math.imul(651+e,31)+t}static of(e,t){return e!==t||e<0||e>jt.INTERVAL_POOL_MAX_VALUE?new jt(e,t):(jt.cache[e]||(jt.cache[e]=new jt(e,e)),jt.cache[e])}equals(e){return this.start===e.start&&this.stop===e.stop}hashCode(){return this.cachedHashCode}startsBeforeDisjoint(e){return this.start<e.start&&this.stop<e.start}startsBeforeNonDisjoint(e){return this.start<=e.start&&this.stop>=e.start}startsAfter(e){return this.start>e.start}startsAfterDisjoint(e){return this.start>e.stop}startsAfterNonDisjoint(e){return this.start>e.start&&this.start<=e.stop}disjoint(e){return this.startsBeforeDisjoint(e)||this.startsAfterDisjoint(e)}adjacent(e){return this.start===e.stop+1||this.stop===e.start-1}properlyContains(e){return e.start>=this.start&&e.stop<=this.stop}union(e){return jt.of(Math.min(this.start,e.start),Math.max(this.stop,e.stop))}intersection(e){return jt.of(Math.max(this.start,e.start),Math.min(this.stop,e.stop))}differenceNotProperlyContained(e){let t=null;return e.startsBeforeNonDisjoint(this)?t=jt.of(Math.max(this.start,e.stop+1),this.stop):e.startsAfterNonDisjoint(this)&&(t=jt.of(this.start,e.start-1)),t}toString(){return`${this.start}..${this.stop}`}get length(){return this.stop<this.start?0:this.stop-this.start+1}},lr=class Rr{static{E(this,"Vocabulary")}static EMPTY_NAMES=[];static EMPTY_VOCABULARY=new Rr(Rr.EMPTY_NAMES,Rr.EMPTY_NAMES,Rr.EMPTY_NAMES);maxTokenType;literalNames;symbolicNames;displayNames;constructor(e,t,i){this.literalNames=e??Rr.EMPTY_NAMES,this.symbolicNames=t??Rr.EMPTY_NAMES,this.displayNames=i??Rr.EMPTY_NAMES,this.maxTokenType=Math.max(this.displayNames.length,Math.max(this.literalNames.length,this.symbolicNames.length))-1}static fromTokenNames(e){if(e==null||e.length===0)return Rr.EMPTY_VOCABULARY;let t=[...e],i=[...e];for(let n=0;n<e.length;n++){let a=e[n];if(a!=null){if(a.length>0){let o=a.codePointAt(0);if(o===39){i[n]=null;continue}else if(o>=65&&o<=90){t[n]=null;continue}}t[n]=null,i[n]=null}}return new Rr(t,i,e)}getMaxTokenType(){return this.maxTokenType}getLiteralName(e){return e>=0&&e<this.literalNames.length?this.literalNames[e]:null}getSymbolicName(e){return e>=0&&e<this.symbolicNames.length?this.symbolicNames[e]:e===w.EOF?"EOF":null}getDisplayName(e){if(e>=0&&e<this.displayNames.length){let n=this.displayNames[e];if(n!=null)return n}let t=this.getLiteralName(e);if(t!=null)return t;let i=this.getSymbolicName(e);return i??`${e}`}getLiteralNames(){return this.literalNames}getSymbolicNames(){return this.symbolicNames}getDisplayNames(){return this.displayNames}},or=class Dt{static{E(this,"IntervalSet")}intervals=[];cachedHashCode;constructor(e){if(e)if(Array.isArray(e))for(let t of e)this.addOne(t);else this.addSet(e)}static of(e,t){let i=new Dt;return i.addRange(e,t),i}static or(e){let t=new Dt;for(let i of e)t.addSet(i);return t}[Symbol.iterator](){return this.intervals[Symbol.iterator]()}get(e){return this.intervals[e]}get minElement(){return this.intervals.length===0?w.INVALID_TYPE:this.intervals[0].start}get maxElement(){return this.intervals.length===0?w.INVALID_TYPE:this.intervals[this.intervals.length-1].stop}clear(){this.cachedHashCode=void 0,this.intervals=[]}addOne(e){this.addInterval(new ye(e,e))}addRange(e,t){this.addInterval(new ye(e,t))}addInterval(e){if(this.cachedHashCode=void 0,this.intervals.length===0)this.intervals.push(e);else{for(let t=0;t<this.intervals.length;t++){let i=this.intervals[t];if(e.equals(i))return;if(e.adjacent(i)||!e.disjoint(i)){let n=e.union(i);this.intervals[t]=n;for(let a=t+1;a<this.intervals.length;){let o=this.intervals[a];if(!n.adjacent(o)&&n.disjoint(o))break;this.intervals.splice(a,1),this.intervals[t]=n.union(o)}return}if(e.startsBeforeDisjoint(i)){this.intervals.splice(t,0,e);return}}this.intervals.push(e)}}addSet(e){return e.intervals.forEach(t=>this.addInterval(t),this),this}complementWithVocabulary(e){let t=new Dt;return!e||e.length===0?t:(t.addSet(e),t.subtract(this))}complement(e,t){let i=new Dt;return i.addInterval(new ye(e,t)),i.subtract(this)}or(e){let t=new Dt;return t.addSet(this),e.forEach(i=>t.addSet(i)),t}and(e){if(e.length===0)return new Dt;let t=this.intervals,i=e.intervals,n,a=t.length,o=i.length,l=0,h=0;for(;l<a&&h<o;){let f=t[l],x=i[h];f.startsBeforeDisjoint(x)?l++:x.startsBeforeDisjoint(f)?h++:f.properlyContains(x)?(n||(n=new Dt),n.addInterval(f.intersection(x)),h++):x.properlyContains(f)?(n||(n=new Dt),n.addInterval(f.intersection(x)),l++):f.disjoint(x)||(n||(n=new Dt),n.addInterval(f.intersection(x)),f.startsAfterNonDisjoint(x)?h++:x.startsAfterNonDisjoint(f)&&l++)}return n||new Dt}subtract(e){if(this.length===0)return new Dt;let t=new Dt(this);if(e.length===0)return t;let i=0,n=0;for(;i<t.intervals.length&&n<e.intervals.length;){let a=t.intervals[i],o=e.intervals[n];if(o.stop<a.start){n++;continue}if(o.start>a.stop){i++;continue}let l,h;o.start>a.start&&(l=new ye(a.start,o.start-1)),o.stop<a.stop&&(h=new ye(o.stop+1,a.stop)),l?h?(t.intervals[i]=l,t.intervals.splice(i+1,0,h),i++,n++):(t.intervals[i]=l,i++):h?(t.intervals[i]=h,n++):t.intervals.splice(i,1)}return t}contains(e){let t=this.intervals.length,i=0,n=t-1;for(;i<=n;){let a=Math.floor((i+n)/2),o=this.intervals[a];if(o.stop<e)i=a+1;else if(o.start>e)n=a-1;else return!0}return!1}removeRange(e){if(this.cachedHashCode=void 0,e.start===e.stop)this.removeOne(e.start);else if(this.intervals!==null){let t=0;for(let i of this.intervals){if(e.stop<=i.start)return;if(e.start>i.start&&e.stop<i.stop){this.intervals[t]=new ye(i.start,e.start);let n=new ye(e.stop,i.stop);this.intervals.splice(t,0,n);return}else e.start<=i.start&&e.stop>=i.stop?(this.intervals.splice(t,1),t=t-1):e.start<i.stop?this.intervals[t]=new ye(i.start,e.start):e.stop<i.stop&&(this.intervals[t]=new ye(e.stop,i.stop));t+=1}}}removeOne(e){this.cachedHashCode=void 0;for(let t=0;t<this.intervals.length;t++){let i=this.intervals[t];if(e<i.start)return;if(e===i.start&&e===i.stop){this.intervals.splice(t,1);return}else if(e===i.start){this.intervals[t]=new ye(i.start+1,i.stop);return}else if(e===i.stop){this.intervals[t]=new ye(i.start,i.stop-1);return}else if(e<i.stop){let n=new ye(i.start,e-1);this.intervals[t]=new ye(e+1,i.stop),this.intervals.splice(t,0,n);return}}}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();for(let t of this.intervals)e=H.update(e,t.start),e=H.update(e,t.stop);this.cachedHashCode=H.finish(e,this.intervals.length*2)}return this.cachedHashCode}equals(e){if(this===e)return!0;if(this.intervals.length!==e.intervals.length)return!1;for(let t=0;t<this.intervals.length;t++)if(!this.intervals[t].equals(e.intervals[t]))return!1;return!0}toString(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");for(let i=0;i<this.intervals.length;++i){let n=this.intervals[i],a=n.start,o=n.stop;a===o?a===w.EOF?t+="<EOF>":e?t+="'"+String.fromCodePoint(a)+"'":t+=a:e?t+="'"+String.fromCodePoint(a)+"'..'"+String.fromCodePoint(o)+"'":t+=a+".."+o,i<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toStringWithVocabulary(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");for(let i=0;i<this.intervals.length;++i){let n=this.intervals[i],a=n.start,o=n.stop;if(a===o)a===w.EOF?t+="<EOF>":t+=this.elementName(e,a);else for(let l=a;l<=o;++l)l>a&&(t+=", "),t+=this.elementName(e,l);i<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toStringWithRuleNames(e){if(this.intervals.length===0)return"{}";let t="";this.length>1&&(t+="{");let i=lr.fromTokenNames(e);for(let n=0;n<this.intervals.length;++n){let a=this.intervals[n],o=a.start,l=a.stop;if(o===l)o===w.EOF?t+="<EOF>":t+=this.elementName(i,o);else for(let h=o;h<=l;++h)h>o&&(t+=", "),t+=this.elementName(i,h);n<this.intervals.length-1&&(t+=", ")}return this.length>1&&(t+="}"),t}toArray(){let e=[];for(let t of this.intervals)for(let i=t.start;i<=t.stop;i++)e.push(i);return e}get length(){let e=0;for(let t of this.intervals)e+=t.length;return e}elementName(e,t){return t===w.EOF?"<EOF>":t===w.EPSILON?"<EPSILON>":e.getDisplayName(t)}};var W6=E(r=>r===null?"null":r,"valueToString"),Vn=E(r=>Array.isArray(r)?"["+r.map(W6).join(", ")+"]":"null","arrayToString"),Hu=E((r,e)=>{if(r===e)return!0;if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++){let i=r[t],n=e[t];if(i!==n&&(!i||!i.equals(n)))return!1}return!0},"equalArrays"),z6=E((r,e)=>{if(r===e)return!0;if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0},"equalNumberArrays"),K6=E((r,e=!1)=>(r=r.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),e&&(r=r.replace(/ /g,"\xB7")),r),"escapeWhitespace"),Le=class Ui{static{E(this,"SemanticContext")}cachedHashCode;static andContext(e,t){if(e===null||e===Ui.NONE)return t;if(t===null||t===Ui.NONE)return e;let i=new Q6(e,t);return i.operands.length===1?i.operands[0]:i}static orContext(e,t){if(e===null)return t;if(t===null)return e;if(e===Ui.NONE||t===Ui.NONE)return Ui.NONE;let i=new $6(e,t);return i.operands.length===1?i.operands[0]:i}static filterPrecedencePredicates(e){let t=[];for(let i of e)i instanceof Ui.PrecedencePredicate&&t.push(i);return t}evalPrecedence(e,t){return this}},Q6=class wu extends Le{static{E(this,"AND")}operands;constructor(e,t){super();let i=new Wt;e instanceof wu?e.operands.forEach(a=>{i.add(a)}):i.add(e),t instanceof wu?t.operands.forEach(a=>{i.add(a)}):i.add(t);let n=Le.filterPrecedencePredicates(i);if(n.length>0){let a=null;n.forEach(o=>{(a===null||o.precedence<a.precedence)&&(a=o)}),a&&i.add(a)}this.operands=i.toArray()}equals(e){return this===e?!0:e instanceof wu?Hu(this.operands,e.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();for(let t of this.operands)e=H.updateFromComparable(e,t);e=H.update(e,3813686060),this.cachedHashCode=H.finish(e,this.operands.length+1)}return this.cachedHashCode}evaluate(e,t){for(let i of this.operands)if(!i.evaluate(e,t))return!1;return!0}evalPrecedence(e,t){let i=!1,n=[];for(let o of this.operands){let l=o.evalPrecedence(e,t);if(i||=l!==o,l===null)return null;l!==Le.NONE&&n.push(l)}if(!i)return this;if(n.length===0)return Le.NONE;let a=null;return n.forEach(o=>{a=a===null?o:Le.andContext(a,o)}),a}toString(){let e=this.operands.map(t=>t.toString());return(e.length>3?e.slice(3):e).join("&&")}},$6=class Du extends Le{static{E(this,"OR")}operands;constructor(e,t){super();let i=new Wt;e instanceof Du?e.operands.forEach(a=>{i.add(a)}):i.add(e),t instanceof Du?t.operands.forEach(a=>{i.add(a)}):i.add(t);let n=Le.filterPrecedencePredicates(i);if(n.length>0){let a=n.sort((l,h)=>l.compareTo(h)),o=a[a.length-1];i.add(o)}this.operands=i.toArray()}equals(e){return this===e?!0:e instanceof Du?Hu(this.operands,e.operands):!1}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();for(let t of this.operands)e=H.updateFromComparable(e,t);e=H.update(e,3383313031),this.cachedHashCode=H.finish(e,this.operands.length+1)}return this.cachedHashCode}evaluate(e,t){for(let i of this.operands)if(i.evaluate(e,t))return!0;return!1}evalPrecedence(e,t){let i=!1,n=[];for(let o of this.operands){let l=o.evalPrecedence(e,t);if(i||=l!==o,l===Le.NONE)return Le.NONE;l!==null&&n.push(l)}if(!i)return this;if(n.length===0)return null;let a=null;return n.forEach(o=>{a=a===null?o:Le.orContext(a,o)}),a}toString(){let e=this.operands.map(t=>t.toString());return(e.length>3?e.slice(3):e).join("||")}};(r=>{class e extends r{static{E(this,"Predicate")}ruleIndex;predIndex;isCtxDependent;constructor(n,a,o){super(),this.ruleIndex=n??-1,this.predIndex=a??-1,this.isCtxDependent=o??!1}evaluate(n,a){let o=this.isCtxDependent?a:null;return n.sempred(o,this.ruleIndex,this.predIndex)}hashCode(){if(this.cachedHashCode===void 0){let n=H.initialize();n=H.update(n,this.ruleIndex),n=H.update(n,this.predIndex),n=H.update(n,this.isCtxDependent?1:0),n=H.finish(n,3),this.cachedHashCode=n}return this.cachedHashCode}equals(n){return this===n?!0:this.ruleIndex===n.ruleIndex&&this.predIndex===n.predIndex&&this.isCtxDependent===n.isCtxDependent}toString(){return"{"+this.ruleIndex+":"+this.predIndex+"}?"}}r.Predicate=e;class t extends r{static{E(this,"PrecedencePredicate")}precedence;constructor(n){super(),this.precedence=n??0}evaluate(n,a){return n.precpred(a,this.precedence)}evalPrecedence(n,a){return n.precpred(a??null,this.precedence)?r.NONE:null}compareTo(n){return this.precedence-n.precedence}hashCode(){return 31+this.precedence}equals(n){return this===n?!0:this.precedence===n.precedence}toString(){return"{"+this.precedence+">=prec}?"}}r.PrecedencePredicate=t,r.NONE=new e})(Le||(Le={}));var Qe=class Ys{static{E(this,"ATNConfig")}state;alt;reachesIntoOuterContext=!1;precedenceFilterSuppressed=!1;get semanticContext(){return this.#t}cachedHashCode;#e=null;#t;constructor(e,t,i,n){this.state=t,this.alt=e.alt,this.context=i,this.#t=n??Le.NONE,this.reachesIntoOuterContext=e.reachesIntoOuterContext,e.precedenceFilterSuppressed!==void 0&&(this.precedenceFilterSuppressed=e.precedenceFilterSuppressed)}static duplicate(e,t){return new Ys(e,e.state,e.context,t??e.semanticContext)}static createWithContext(e,t,i,n){return new Ys({alt:t},e,i,n)}static createWithConfig(e,t,i){return new Ys(t,e,i??t.context,t.semanticContext)}static createWithSemanticContext(e,t,i){return new Ys(t,e??t.state,t.context,i)}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize(7);e=H.update(e,this.state.stateNumber),e=H.update(e,this.alt),e=H.updateFromComparable(e,this.#e),e=H.updateFromComparable(e,this.semanticContext),e=H.finish(e,4),this.cachedHashCode=e}return this.cachedHashCode}get context(){return this.#e}set context(e){this.#e=e,this.cachedHashCode=void 0}equals(e){return this===e?!0:this.state.stateNumber===e.state.stateNumber&&this.alt===e.alt&&(this.context===null?e.context===null:this.context.equals(e.context))&&this.semanticContext.equals(e.semanticContext)&&this.precedenceFilterSuppressed===e.precedenceFilterSuppressed}toString(e,t=!0){let i="";return t&&(i=","+this.alt),"("+this.state+i+(this.context!==null?",["+this.context.toString()+"]":"")+(this.semanticContext!==Le.NONE?","+this.semanticContext.toString():"")+(this.reachesIntoOuterContext?",up="+this.reachesIntoOuterContext:"")+")"}},$=class hg{static{E(this,"ATNState")}static INVALID_STATE_NUMBER=-1;static INVALID_TYPE=0;static BASIC=1;static RULE_START=2;static BLOCK_START=3;static PLUS_BLOCK_START=4;static STAR_BLOCK_START=5;static TOKEN_START=6;static RULE_STOP=7;static BLOCK_END=8;static STAR_LOOP_BACK=9;static STAR_LOOP_ENTRY=10;static PLUS_LOOP_BACK=11;static LOOP_END=12;static stateType=hg.INVALID_STATE_NUMBER;stateNumber=0;ruleIndex=0;epsilonOnlyTransitions=!1;nextTokenWithinRule;transitions=[];hashCode(){return this.stateNumber}equals(e){return this.stateNumber===e.stateNumber}toString(){return`${this.stateNumber}`}addTransitionAtIndex(e,t){this.transitions.length===0?this.epsilonOnlyTransitions=t.isEpsilon:this.epsilonOnlyTransitions!==t.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.splice(e,0,t)}addTransition(e){this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),this.transitions.push(e)}setTransition(e,t){this.transitions.splice(e,1,t)}removeTransition(e){return this.transitions.splice(e,1)[0]}},at=class dg{static{E(this,"PredictionContext")}static EMPTY_RETURN_STATE=2147483647;static traceATNSimulator=!1;cachedHashCode;constructor(e){this.cachedHashCode=e}static calculateEmptyHashCode(){let e=H.initialize(31);return e=H.finish(e,0),e}static calculateHashCodeSingle(e,t){let i=H.initialize(31);return i=H.updateFromComparable(i,e),i=H.update(i,t),i=H.finish(i,2),i}static calculateHashCodeList(e,t){let i=H.initialize(31);for(let n of e)i=H.updateFromComparable(i,n);for(let n of t)i=H.update(i,n);return i=H.finish(i,2*e.length),i}isEmpty(){return!1}hasEmptyPath(){return this.getReturnState(this.length-1)===dg.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}toString(e){return""}},qn=class pg extends at{static{E(this,"SingletonPredictionContext")}parent;returnState;constructor(e,t){super(e?at.calculateHashCodeSingle(e,t):at.calculateEmptyHashCode()),this.parent=e??null,this.returnState=t}getParent(e){return this.parent}getReturnState(e){return this.returnState}equals(e){return this===e?!0:!(e instanceof pg)||this.hashCode()!==e.hashCode()||this.returnState!==e.returnState?!1:this.parent==null?e.parent==null:this.parent.equals(e.parent)}toString(){let e=this.parent===null?"":this.parent.toString();return e.length===0?this.returnState===at.EMPTY_RETURN_STATE?"$":""+this.returnState:""+this.returnState+" "+e}get length(){return 1}},Ye=class fg extends qn{static{E(this,"EmptyPredictionContext")}static instance=new fg;constructor(){super(void 0,at.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(){return null}getReturnState(){return this.returnState}equals(e){return this===e}toString(){return"$"}},G=class{static{E(this,"Transition")}static INVALID=0;static EPSILON=1;static RANGE=2;static RULE=3;static PREDICATE=4;static ATOM=5;static ACTION=6;static SET=7;static NOT_SET=8;static WILDCARD=9;static PRECEDENCE=10;target;constructor(r){this.target=r}get isEpsilon(){return!1}get label(){return null}toString(){return""}},U3=class extends G{static{E(this,"SetTransition")}set;constructor(r,e){super(r),e?this.set=e:this.set=or.of(w.INVALID_TYPE,w.INVALID_TYPE)}get transitionType(){return G.SET}get label(){return this.set}matches(r,e,t){return this.set.contains(r)}toString(){return this.set.toString()}},w3=class extends U3{static{E(this,"NotSetTransition")}get transitionType(){return G.NOT_SET}matches(r,e,t){return r>=e&&r<=t&&!super.matches(r,e,t)}toString(){return"~"+super.toString()}},Y6=class{static{E(this,"MapKeyEqualityComparator")}keyComparator;constructor(r){this.keyComparator=r}hashCode(r){return this.keyComparator.hashCode(r.key)}equals(r,e){return this.keyComparator.equals(r.key,e.key)}},Ir=class mg{static{E(this,"HashMap")}backingStore;constructor(e){e instanceof mg?this.backingStore=new Wt(e.backingStore):(e=e??ug.instance,this.backingStore=new Wt(new Y6(e)))}clear(){this.backingStore.clear()}containsKey(e){return this.backingStore.contains({key:e})}get(e){let t=this.backingStore.get({key:e});if(t)return t.value}get isEmpty(){return this.backingStore.isEmpty}set(e,t){let i=this.backingStore.get({key:e,value:t}),n;return i?(n=i.value,i.value=t):this.backingStore.add({key:e,value:t}),n}setIfAbsent(e,t){let i=this.backingStore.get({key:e,value:t}),n;return i?n=i.value:this.backingStore.add({key:e,value:t}),n}keys(){return this.backingStore.toArray().map(e=>e.key)}values(){return this.backingStore.toArray().map(e=>e.value)}get size(){return this.backingStore.size}hashCode(){return this.backingStore.hashCode()}equals(e){return this.backingStore.equals(e.backingStore)}},dt=class{static{E(this,"TerminalNode")}parent=null;symbol;constructor(r){this.symbol=r}getChild(r){return null}getSymbol(){return this.symbol}getPayload(){return this.symbol}getSourceInterval(){if(this.symbol===null)return ye.INVALID_INTERVAL;let r=this.symbol.tokenIndex;return new ye(r,r)}getChildCount(){return 0}accept(r){return r.visitTerminal(this)}getText(){return this.symbol?.text??""}toString(){return this.symbol?.type===w.EOF?"<EOF>":this.symbol?.text??""}toStringTree(){return this.toString()}},ra=class extends dt{static{E(this,"ErrorNode")}accept(r){return r.visitErrorNode(this)}},ku=class Bn{static{E(this,"CommonToken")}static EMPTY_SOURCE=[null,null];source;tokenIndex;start;stop;type;line;column;channel;#e;constructor(e){this.type=e.type,this.source=e.source,this.tokenIndex=e.tokenIndex??-1,this.line=e.line??0,this.column=e.column??-1,this.channel=e.channel??w.DEFAULT_CHANNEL,this.start=e.start??0,this.stop=e.stop??0,this.#e=e.text,e.line===void 0&&e.source[0]!==null&&(this.line=e.source[0].line),e.column===void 0&&e.source[0]!==null&&(this.column=e.source[0].column)}static fromToken(e){let t=[e.tokenSource,e.inputStream];return new Bn({type:e.type,line:e.line,tokenIndex:e.tokenIndex,column:e.column,channel:e.channel,start:e.start,stop:e.stop,text:e.text,source:t})}static fromType(e,t){return new Bn({type:e,text:t,source:Bn.EMPTY_SOURCE})}static fromSource(e,t,i,n,a){return new Bn({type:t,channel:i,start:n,stop:a,source:e})}get tokenSource(){return this.source[0]}get inputStream(){return this.source[1]}set inputStream(e){this.source[1]=e}clone(){return new Bn({source:this.source,type:this.type,channel:this.channel,start:this.start,stop:this.stop,tokenIndex:this.tokenIndex,line:this.line,column:this.column,text:this.#e})}toString(e){let t="";this.channel>0&&(t=",channel="+this.channel);let i=this.text;i?(i=i.replace(/\n/g,"\\n"),i=i.replace(/\r/g,"\\r"),i=i.replace(/\t/g,"\\t")):i="<no text>";let n=String(this.type);return e&&(n=e.vocabulary.getDisplayName(this.type)??"<unknown>"),"[@"+this.tokenIndex+","+this.start+":"+this.stop+"='"+i+"',<"+n+">"+t+","+this.line+":"+this.column+"]"}get text(){if(this.#e!==void 0)return this.#e;let e=this.inputStream;if(!e)return;let t=e.size;return this.start<t&&this.stop<t?e.getTextFromRange(this.start,this.stop):"<EOF>"}set text(e){this.#e=e}setText(e){this.#e=e}setType(e){this.type=e}setLine(e){this.line=e}setCharPositionInLine(e){this.column=e}setChannel(e){this.channel=e}setTokenIndex(e){this.tokenIndex=e}},si=class wr{static{E(this,"Trees")}static toStringTree(e,t,i){t=t??null,i&&(t=i.ruleNames);let n=wr.getNodeText(e,t);n=K6(n,!1);let a=e.getChildCount();if(a===0)return n;let o="("+n+" ";a>0&&(n=wr.toStringTree(e.getChild(0),t),o=o.concat(n));for(let l=1;l<a;l++)n=wr.toStringTree(e.getChild(l),t),o=o.concat(" "+n);return o=o.concat(")"),o}static getNodeText(e,t,i){if(t=t??null,i&&(t=i.ruleNames),t!==null)if(e instanceof u){let o=e.ruleContext.getAltNumber();return o!==0?t[e.ruleIndex]+":"+o:t[e.ruleIndex]}else{if(e instanceof ra)return e.toString();if(e instanceof dt)return e.symbol.text}let n=e.getPayload();return _6(n)?n.text:String(e.getPayload())}static getChildren(e){let t=[];for(let i=0;i<e.getChildCount();i++)t.push(e.getChild(i));return t}static getAncestors(e){if(e.parent===null)return[];let t=[],i=e.parent;for(;i!==null;)t=[i].concat(t),i=i.parent;return t}static isAncestorOf(e,t){if(e===null||t===null||e.parent===null)return!1;let i=t.parent;for(;i!==null;){if(e===i)return!0;i=i.parent}return!1}static findAllTokenNodes(e,t){return wr.findAllNodes(e,t,!0)}static findAllRuleNodes(e,t){return wr.findAllNodes(e,t,!1)}static findAllNodes(e,t,i){let n=[];return wr.doFindAllNodes(e,t,i,n),n}static descendants(e){let t=[e];for(let i=0;i<e.getChildCount();i++)t=t.concat(wr.descendants(e.getChild(i)));return t}static getRootOfSubtreeEnclosingRegion(e,t,i){let n=e.getChildCount();for(let a=0;a<n;a++){let o=e.getChild(a),l=this.getRootOfSubtreeEnclosingRegion(o,t,i);if(l!==null)return l}return e instanceof u&&t>=e.start.tokenIndex&&(e.stop===null||i<=e.stop.tokenIndex)?e:null}static stripChildrenOutOfRange(e,t,i,n){if(e!==null)for(let a=0;a<e.getChildCount();a++){let o=e.getChild(a),l=o.getSourceInterval();if(e instanceof u&&(l.stop<i||l.start>n)&&this.isAncestorOf(o,t)){let h=ku.fromType(w.INVALID_TYPE,"...");e.children[a]=new dt(h)}}}static doFindAllNodes(e,t,i,n){i&&e instanceof dt?e.symbol?.type===t&&n.push(e):!i&&e instanceof u&&e.ruleIndex===t&&n.push(e);for(let a=0;a<e.getChildCount();a++)wr.doFindAllNodes(e.getChild(a),t,i,n)}},u=class xg{static{E(this,"ParserRuleContext")}static empty=new xg(null);start=null;stop=null;children=[];invokingState;parent;constructor(e,t=-1){this.parent=e,this.invokingState=t}copyFrom(e){this.parent=e.parent,this.invokingState=e.invokingState,this.children.slice(0,this.children.length),this.start=e.start,this.stop=e.stop,e.children&&e.children.forEach(t=>{t instanceof ra&&(this.children.push(t),t.parent=this)})}enterRule(e){}exitRule(e){}addChild(e){return this.children.push(e),e}removeLastChild(){this.children.pop()}addTokenNode(e){let t=new dt(e);return this.children.push(t),t.parent=this,t}addErrorNode(e){return e.parent=this,this.children.push(e),e}getChild(e,t){if(e<0||e>=this.children.length)return null;if(!t)return this.children[e];for(let i of this.children)if(i instanceof t){if(e===0)return i;e-=1}return null}getToken(e,t){if(t<0||t>=this.children.length)return null;for(let i of this.children)if("symbol"in i&&i.symbol?.type===e){if(t===0)return i;t-=1}return null}getTokens(e){let t=[];for(let i of this.children)"symbol"in i&&i.symbol?.type===e&&t.push(i);return t}getRuleContext(e,t){return this.getChild(e,t)}getRuleContexts(e){let t=[];for(let i of this.children)i instanceof e&&t.push(i);return t}getChildCount(){return this.children.length}getSourceInterval(){return this.start===null?ye.INVALID_INTERVAL:this.stop===null||this.stop.tokenIndex<this.start.tokenIndex?new ye(this.start.tokenIndex,this.start.tokenIndex-1):new ye(this.start.tokenIndex,this.stop.tokenIndex)}depth(){let e=0,t=this;for(;t!==null;)t=t.parent,e+=1;return e}isEmpty(){return this.invokingState===-1}get ruleContext(){return this}get ruleIndex(){return-1}getPayload(){return this}getText(){return this.children.length===0?"":this.children.map(e=>e.getText()).join("")}getAltNumber(){return ee.INVALID_ALT_NUMBER}setAltNumber(e){}accept(e){return e.visitChildren(this)}toStringTree(...e){return e.length<2?si.toStringTree(this,null,e[0]):si.toStringTree(this,e[0],e[1])}toString(e,t){e=e??null,t=t??null;let i=this,n="[";for(;i!==null&&i!==t;){if(e===null)i.isEmpty()||(n+=i.invokingState);else{let a=i.ruleIndex,o=a>=0&&a<e.length?e[a]:""+a;n+=o}i.parent!==null&&(e!==null||!i.parent.isEmpty())&&(n+=" "),i=i.parent}return n+="]",n}},ai=class bg extends at{static{E(this,"ArrayPredictionContext")}parents=[];returnStates=[];constructor(e,t){return super(at.calculateHashCodeList(e,t)),this.parents=e,this.returnStates=t,this}isEmpty(){return this.returnStates[0]===at.EMPTY_RETURN_STATE}get length(){return this.returnStates.length}getParent(e){return this.parents[e]}getReturnState(e){return this.returnStates[e]}equals(e){return this===e?!0:!(e instanceof bg)||this.hashCode()!==e.hashCode()?!1:z6(this.returnStates,e.returnStates)&&Hu(this.parents,e.parents)}toString(){if(this.isEmpty())return"[]";let e=[];for(let t=0;t<this.returnStates.length;t++){if(this.returnStates[t]===at.EMPTY_RETURN_STATE){e.push("$");continue}e.push(this.returnStates[t].toString()),this.parents[t]?e.push(this.parents[t].toString()):e.push("null")}return`[${e.join(", ")}]`}},ki=E((r,e)=>e===at.EMPTY_RETURN_STATE&&r===null?Ye.instance:new qn(r,e),"createSingletonPredictionContext"),D3=E((r,e)=>{if(e||(e=u.empty),!e.parent||e===u.empty)return Ye.instance;let t=D3(r,e.parent),n=r.states[e.invokingState].transitions[0];return ki(t,n.followState.stateNumber)},"predictionContextFromRuleContext"),gg=E((r,e,t)=>{if(r.isEmpty())return r;let i=t.get(r);if(i)return i;if(i=e.get(r),i)return t.set(r,i),i;let n=!1,a=[];for(let l=0;l<a.length;l++){let h=gg(r.getParent(l),e,t);if(n||h!==r.getParent(l)){if(!n){a=[];for(let f=0;f<r.length;f++)a[f]=r.getParent(f);n=!0}a[l]=h}}if(!n)return e.add(r),t.set(r,r),r;let o;return a.length===0?o=Ye.instance:a.length===1?o=ki(a[0]??void 0,r.getReturnState(0)):o=new ai(a,r.returnStates),e.add(o),t.set(o,o),t.set(r,o),o},"getCachedPredictionContext"),O3=E((r,e,t,i)=>{if(r===e||r.equals(e))return r;if(r instanceof qn&&e instanceof qn)return Z6(r,e,t,i);if(t){if(r instanceof Ye)return r;if(e instanceof Ye)return e}return r instanceof qn&&(r=new ai([r.parent],[r.returnState])),e instanceof qn&&(e=new ai([e.parent],[e.returnState])),J6(r,e,t,i)},"merge"),J6=E((r,e,t,i)=>{if(i){let x=i.get(r,e);if(x||(x=i.get(e,r),x))return x}let n=0,a=0,o=0,l=new Array(r.returnStates.length+e.returnStates.length).fill(0),h=new Array(r.returnStates.length+e.returnStates.length).fill(null);for(;n<r.returnStates.length&&a<e.returnStates.length;){let x=r.parents[n],R=e.parents[a];if(r.returnStates[n]===e.returnStates[a]){let S=r.returnStates[n];S===at.EMPTY_RETURN_STATE&&x===null&&R===null||x!==null&&R!==null&&x===R?(h[o]=x,l[o]=S):(h[o]=O3(x,R,t,i),l[o]=S),n+=1,a+=1}else r.returnStates[n]<e.returnStates[a]?(h[o]=x,l[o]=r.returnStates[n],n+=1):(h[o]=R,l[o]=e.returnStates[a],a+=1);o+=1}if(n<r.returnStates.length)for(let x=n;x<r.returnStates.length;x++)h[o]=r.parents[x],l[o]=r.returnStates[x],o+=1;else for(let x=a;x<e.returnStates.length;x++)h[o]=e.parents[x],l[o]=e.returnStates[x],o+=1;if(o<h.length){if(o===1){let x=ki(h[0]??void 0,l[0]);return i!==null&&i.set(r,e,x),x}h=h.slice(0,o),l=l.slice(0,o)}let f=new ai(h,l);return f.equals(r)?(i!==null&&i.set(r,e,r),at.traceATNSimulator&&console.log("mergeArrays a="+r+",b="+e+" -> a"),r):f.equals(e)?(i!==null&&i.set(r,e,e),e):(X6(h),i!==null&&i.set(r,e,f),at.traceATNSimulator&&console.log("mergeArrays a="+r+",b="+e+" -> "+f),f)},"mergeArrays"),X6=E(r=>{let e=new Ir(Ii.instance);for(let t of r)t&&(e.containsKey(t)||e.set(t,t));for(let t=0;t<r.length;t++)r[t]&&(r[t]=e.get(r[t])??null)},"combineCommonParents"),Z6=E((r,e,t,i)=>{if(i!==null){let a=i.get(r,e);if(a!==null||(a=i.get(e,r),a!==null))return a}let n=e8(r,e,t);if(n!==null)return i!==null&&i.set(r,e,n),n;if(r.returnState===e.returnState){let a=O3(r.parent,e.parent,t,i);if(a===r.parent)return r;if(a===e.parent)return e;let o=ki(a,r.returnState);return i!==null&&i.set(r,e,o),o}else{let a=null;if((r===e||r.parent!==null&&r.parent.equals(e.parent))&&(a=r.parent),a!==null){let f=[r.returnState,e.returnState];r.returnState>e.returnState&&(f[0]=e.returnState,f[1]=r.returnState);let x=[a,a],R=new ai(x,f);return i!==null&&i.set(r,e,R),R}let o=[r.returnState,e.returnState],l=[r.parent,e.parent];r.returnState>e.returnState&&(o[0]=e.returnState,o[1]=r.returnState,l=[e.parent,r.parent]);let h=new ai(l,o);return i!==null&&i.set(r,e,h),h}},"mergeSingletons"),e8=E((r,e,t)=>{if(t){if(r===Ye.instance||e===Ye.instance)return Ye.instance}else{if(r===Ye.instance&&e===Ye.instance)return Ye.instance;if(r===Ye.instance){let i=[e.returnState,at.EMPTY_RETURN_STATE],n=[e.parent,null];return new ai(n,i)}if(e===Ye.instance){let i=[r.returnState,at.EMPTY_RETURN_STATE],n=[r.parent,null];return new ai(n,i)}}return null},"mergeRoot"),t8=class L3{constructor(e){this.atn=e}static{E(this,"LL1Analyzer")}static hitPredicate=w.INVALID_TYPE;getDecisionLookahead(e){let t=e.transitions.length,i=new Array(t);for(let n=0;n<t;n++){let a=new or,o=new Wt;this.doLook(e.transitions[n].target,void 0,Ye.instance,a,o,new Cr,!1,!1),a.length>0&&!a.contains(L3.hitPredicate)&&(i[n]=a)}return i}look(e,t,i){let n=new or,a=i?D3(this.atn,i):null;return this.doLook(e,t,a,n,new Wt,new Cr,!0,!0),n}doLook(e,t,i,n,a,o,l,h){let f=Qe.createWithContext(e,0,i);if(!a.get(f)){if(a.add(f),e===t)if(i){if(i.isEmpty()&&h){n.addOne(w.EOF);return}}else{n.addOne(w.EPSILON);return}if(e.constructor.stateType===$.RULE_STOP){if(i){if(i.isEmpty()&&h){n.addOne(w.EOF);return}}else{n.addOne(w.EPSILON);return}if(i!==Ye.instance){let x=o.get(e.ruleIndex);try{o.clear(e.ruleIndex);for(let R=0;R<i.length;R++){let S=this.atn.states[i.getReturnState(R)];this.doLook(S,t,i.getParent(R),n,a,o,l,h)}}finally{x&&o.set(e.ruleIndex)}return}}for(let x of e.transitions)switch(x.transitionType){case G.RULE:{if(o.get(x.target.ruleIndex))continue;let R=ki(i??void 0,x.followState.stateNumber);try{o.set(x.target.ruleIndex),this.doLook(x.target,t,R,n,a,o,l,h)}finally{o.clear(x.target.ruleIndex)}break}case G.PREDICATE:case G.PRECEDENCE:{l?this.doLook(x.target,t,i,n,a,o,l,h):n.addOne(L3.hitPredicate);break}case G.WILDCARD:{n.addRange(w.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType);break}default:{if(x.isEpsilon)this.doLook(x.target,t,i,n,a,o,l,h);else{let R=x.label;R&&(x instanceof w3&&(R=R.complement(w.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType)),n.addSet(R))}break}}}}},ee=class{static{E(this,"ATN")}static INVALID_ALT_NUMBER=0;static LEXER=0;static PARSER=1;grammarType;maxTokenType;states=[];decisionToState=[];ruleToStartState=[];ruleToStopState=[];modeNameToStartState=new Map;ruleToTokenType=[];lexerActions=[];modeToStartState=[];analyzer;constructor(r,e){this.grammarType=r,this.maxTokenType=e,this.analyzer=new t8(this)}nextTokens(r,e){if(!e&&r.nextTokenWithinRule)return r.nextTokenWithinRule;let t=this.analyzer.look(r,void 0,e);return e||(r.nextTokenWithinRule=t),t}addState(r){r&&(r.stateNumber=this.states.length),this.states.push(r)}removeState(r){this.states[r.stateNumber]=null}defineDecisionState(r){return this.decisionToState.push(r),r.decision=this.decisionToState.length-1,r.decision}getDecisionState(r){return this.decisionToState.length===0?null:this.decisionToState[r]}getNumberOfDecisions(){return this.decisionToState.length}getExpectedTokens(r,e){if(r<0||r>=this.states.length)throw new Error("Invalid state number.");let t=this.states[r],i=this.nextTokens(t);if(!i.contains(w.EPSILON))return i;let n=e,a=new or;for(a.addSet(i),a.removeOne(w.EPSILON);n!==null&&n.invokingState>=0&&i.contains(w.EPSILON);){let l=this.states[n.invokingState].transitions[0];i=this.nextTokens(l.followState),a.addSet(i),a.removeOne(w.EPSILON),n=n.parent}return i.contains(w.EPSILON)&&a.addOne(w.EOF),a}},Yb=class Rg{static{E(this,"KeyTypeEqualityComparer")}static instance=new Rg;hashCode(e){let t=7;return t=31*t+e.state.stateNumber,t=31*t+e.alt,t=31*t+e.semanticContext.hashCode(),t}equals(e,t){return e===t?!0:e.state.stateNumber===t.state.stateNumber&&e.alt===t.alt&&e.semanticContext.equals(t.semanticContext)}},Or=class{static{E(this,"ATNConfigSet")}configLookup=new Wt(Yb.instance);configs=[];uniqueAlt=0;hasSemanticContext=!1;dipsIntoOuterContext=!1;fullCtx=!1;readOnly=!1;conflictingAlts=null;firstStopState;#e=-1;constructor(r){if(r!==void 0)if(typeof r=="boolean")this.fullCtx=r??!0;else{let e=r;this.addAll(e.configs),this.uniqueAlt=e.uniqueAlt,this.conflictingAlts=e.conflictingAlts,this.hasSemanticContext=e.hasSemanticContext,this.dipsIntoOuterContext=e.dipsIntoOuterContext}}[Symbol.iterator](){return this.configs[Symbol.iterator]()}add(r,e=null){if(this.readOnly)throw new Error("This set is readonly");!this.firstStopState&&r.state.constructor.stateType===$.RULE_STOP&&(this.firstStopState=r),this.hasSemanticContext||=r.semanticContext!==Le.NONE,this.dipsIntoOuterContext||=r.reachesIntoOuterContext;let t=this.configLookup.getOrAdd(r);if(t===r){this.#e=-1,this.configs.push(r);return}let i=!this.fullCtx,n=O3(t.context,r.context,i,e);t.reachesIntoOuterContext||=r.reachesIntoOuterContext,t.precedenceFilterSuppressed||=r.precedenceFilterSuppressed,t.context=n}get elements(){return this.configs}getAlts(){let r=new Cr;for(let e of this.configs)r.set(e.alt);return r}getPredicates(){let r=[];for(let e of this.configs)e.semanticContext!==Le.NONE&&r.push(e.semanticContext);return r}getStates(){let r=new Wt;for(let e of this.configs)r.add(e.state);return r}optimizeConfigs(r){if(this.readOnly)throw new Error("This set is readonly");if(this.configLookup.size!==0)for(let e of this.configs)e.context=r.getCachedContext(e.context)}addAll(r){for(let e of r)this.add(e);return!1}equals(r){return!!(this===r||this.fullCtx===r.fullCtx&&this.uniqueAlt===r.uniqueAlt&&this.conflictingAlts===r.conflictingAlts&&this.hasSemanticContext===r.hasSemanticContext&&this.dipsIntoOuterContext===r.dipsIntoOuterContext&&Hu(this.configs,r.configs))}hashCode(){return this.#e===-1&&(this.#e=this.computeHashCode()),this.#e}get length(){return this.configs.length}isEmpty(){return this.configs.length===0}contains(r){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(r)}containsFast(r){if(this.configLookup===null)throw new Error("This method is not implemented for readonly sets.");return this.configLookup.contains(r)}clear(){if(this.readOnly)throw new Error("This set is readonly");this.configs=[],this.#e=-1,this.configLookup=new Wt(Yb.instance)}setReadonly(r){this.readOnly=r,r&&(this.configLookup=null)}toString(){return Vn(this.configs)+(this.hasSemanticContext?",hasSemanticContext="+this.hasSemanticContext:"")+(this.uniqueAlt!==ee.INVALID_ALT_NUMBER?",uniqueAlt="+this.uniqueAlt:"")+(this.conflictingAlts!==null?",conflictingAlts="+this.conflictingAlts:"")+(this.dipsIntoOuterContext?",dipsIntoOuterContext":"")}computeHashCode(){let r=H.initialize();return this.configs.forEach(e=>{r=H.update(r,e.hashCode())}),r=H.finish(r,this.configs.length),r}},Jb=class extends ${static{E(this,"BasicState")}static stateType=$.BASIC},Fi=class extends ${static{E(this,"DecisionState")}decision=-1;nonGreedy=!1},Oi=class extends Fi{static{E(this,"BlockStartState")}endState},R3=class extends ${static{E(this,"BlockEndState")}static stateType=$.BLOCK_END;startState},Fn=class extends ${static{E(this,"LoopEndState")}static stateType=$.LOOP_END;loopBackState},S3=class extends ${static{E(this,"RuleStartState")}static stateType=$.RULE_START;stopState;isLeftRecursiveRule=!1},ar=class extends ${static{E(this,"RuleStopState")}static stateType=$.RULE_STOP},r8=class extends Fi{static{E(this,"TokensStartState")}static stateType=$.TOKEN_START},Xb=class extends Fi{static{E(this,"PlusLoopbackState")}static stateType=$.PLUS_LOOP_BACK},y3=class extends ${static{E(this,"StarLoopbackState")}static stateType=$.STAR_LOOP_BACK},ni=class extends Fi{static{E(this,"StarLoopEntryState")}static stateType=$.STAR_LOOP_ENTRY;loopBackState;precedenceRuleDecision=!1},C3=class extends Oi{static{E(this,"PlusBlockStartState")}static stateType=$.PLUS_BLOCK_START;loopBackState},v3=class extends Oi{static{E(this,"StarBlockStartState")}static stateType=$.STAR_BLOCK_START},Zb=class extends Oi{static{E(this,"BasicBlockStartState")}static stateType=$.BLOCK_START},ea=class extends G{static{E(this,"AtomTransition")}labelValue;#e;constructor(r,e){super(r),this.labelValue=e,this.#e=or.of(e,e)}get label(){return this.#e}get transitionType(){return G.ATOM}matches(r){return this.labelValue===r}toString(){return this.labelValue.toString()}},P3=class extends G{static{E(this,"RuleTransition")}ruleIndex;precedence;followState;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.precedence=t,this.followState=i}get isEpsilon(){return!0}get transitionType(){return G.RULE}matches(r,e,t){return!1}},T3=class extends G{static{E(this,"RangeTransition")}start;stop;#e=new or;constructor(r,e,t){super(r),this.start=e,this.stop=t,this.#e.addRange(e,t)}get label(){return this.#e}get transitionType(){return G.RANGE}matches(r,e,t){return r>=this.start&&r<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}},yg=class extends G{static{E(this,"ActionTransition")}ruleIndex;actionIndex;isCtxDependent;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.actionIndex=t??-1,this.isCtxDependent=i??!1}get isEpsilon(){return!0}get transitionType(){return G.ACTION}matches(r,e,t){return!1}toString(){return"action_"+this.ruleIndex+":"+this.actionIndex}},Qs=class extends G{static{E(this,"EpsilonTransition")}#e;constructor(r,e=-1){super(r),this.#e=e}get outermostPrecedenceReturn(){return this.#e}get isEpsilon(){return!0}get transitionType(){return G.EPSILON}matches(){return!1}toString(){return"epsilon"}},i8=class extends G{static{E(this,"WildcardTransition")}get transitionType(){return G.WILDCARD}matches(r,e,t){return r>=e&&r<=t}toString(){return"."}},Cg=class extends G{static{E(this,"AbstractPredicateTransition")}constructor(r){super(r)}},vg=class extends Cg{static{E(this,"PredicateTransition")}ruleIndex;predIndex;isCtxDependent;constructor(r,e,t,i){super(r),this.ruleIndex=e,this.predIndex=t,this.isCtxDependent=i}get isEpsilon(){return!0}matches(r,e,t){return!1}get transitionType(){return G.PREDICATE}getPredicate(){return new Le.Predicate(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return"pred_"+this.ruleIndex+":"+this.predIndex}},n8=class extends Cg{static{E(this,"PrecedencePredicateTransition")}precedence;constructor(r,e){super(r),this.precedence=e}get isEpsilon(){return!0}matches(r,e,t){return!1}getPredicate(){return new Le.PrecedencePredicate(this.precedence)}get transitionType(){return G.PRECEDENCE}toString(){return this.precedence+" >= _p"}},Pe={CHANNEL:0,CUSTOM:1,MODE:2,MORE:3,POP_MODE:4,PUSH_MODE:5,SKIP:6,TYPE:7},s8=class Eg{static{E(this,"LexerSkipAction")}static instance=new Eg;actionType;isPositionDependent=!1;constructor(){this.actionType=Pe.SKIP}equals(e){return e===this}hashCode(){return Pe.SKIP}execute(e){e.skip()}toString(){return"skip"}},a8=class Lg{static{E(this,"LexerChannelAction")}channel;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Pe.CHANNEL,this.channel=e}execute(e){e.channel=this.channel}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.actionType),e=H.update(e,this.channel),this.cachedHashCode=H.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Lg?this.channel===e.channel:!1}toString(){return"channel("+this.channel+")"}},o8=class Sg{static{E(this,"LexerCustomAction")}ruleIndex;actionIndex;actionType;isPositionDependent=!0;cachedHashCode;constructor(e,t){this.actionType=Pe.CUSTOM,this.ruleIndex=e,this.actionIndex=t}execute(e){e.action(null,this.ruleIndex,this.actionIndex)}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.actionType),e=H.update(e,this.ruleIndex),e=H.update(e,this.actionIndex),this.cachedHashCode=H.finish(e,3)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Sg?this.ruleIndex===e.ruleIndex&&this.actionIndex===e.actionIndex:!1}},l8=class Pg{static{E(this,"LexerMoreAction")}static instance=new Pg;actionType;isPositionDependent=!1;constructor(){this.actionType=Pe.MORE}equals(e){return e===this}hashCode(){return Pe.MORE}execute(e){e.more()}toString(){return"more"}},u8=class Tg{static{E(this,"LexerTypeAction")}type;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Pe.TYPE,this.type=e}execute(e){e.type=this.type}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.actionType),e=H.update(e,this.type),this.cachedHashCode=H.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Tg?this.type===e.type:!1}toString(){return"type("+this.type+")"}},c8=class Ag{static{E(this,"LexerPushModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Pe.PUSH_MODE,this.mode=e}execute(e){e.pushMode(this.mode)}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.actionType),e=H.update(e,this.mode),this.cachedHashCode=H.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Ag?this.mode===e.mode:!1}toString(){return"pushMode("+this.mode+")"}},h8=class Mg{static{E(this,"LexerPopModeAction")}static instance=new Mg;actionType;isPositionDependent=!1;constructor(){this.actionType=Pe.POP_MODE}equals(e){return e===this}hashCode(){return Pe.POP_MODE}execute(e){e.popMode()}toString(){return"popMode"}},d8=class Ng{static{E(this,"LexerModeAction")}mode;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){this.actionType=Pe.MODE,this.mode=e}execute(e){e.mode=this.mode}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.actionType),e=H.update(e,this.mode),this.cachedHashCode=H.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Ng?this.mode===e.mode:!1}toString(){return"mode("+this.mode+")"}},oi=class Js{static{E(this,"ATNDeserializer")}static SERIALIZED_VERSION=4;static stateTypeMapper=new Map([[$.INVALID_TYPE,void 0],[$.BASIC,Jb],[$.RULE_START,S3],[$.BLOCK_START,Zb],[$.PLUS_BLOCK_START,C3],[$.STAR_BLOCK_START,v3],[$.TOKEN_START,r8],[$.RULE_STOP,ar],[$.BLOCK_END,R3],[$.STAR_LOOP_BACK,y3],[$.STAR_LOOP_ENTRY,ni],[$.PLUS_LOOP_BACK,Xb],[$.LOOP_END,Fn]]);static lexerActionFactoryMapper=new Map([[Pe.CHANNEL,e=>new a8(e)],[Pe.CUSTOM,(e,t)=>new o8(e,t)],[Pe.MODE,e=>new d8(e)],[Pe.MORE,()=>l8.instance],[Pe.POP_MODE,()=>h8.instance],[Pe.PUSH_MODE,e=>new c8(e)],[Pe.SKIP,()=>s8.instance],[Pe.TYPE,e=>new u8(e)]]);data=[];pos=0;deserializationOptions;actionFactories;constructor(e){e||(e={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!1}),this.deserializationOptions=e}deserialize(e){this.data=e,this.checkVersion();let t=this.readATN();this.readStates(t),this.readRules(t),this.readModes(t);let i=[];return this.readSets(t,i),this.readEdges(t,i),this.readDecisions(t),this.readLexerActions(t),this.markPrecedenceDecisions(t),this.verifyATN(t),this.deserializationOptions.generateRuleBypassTransitions&&t.grammarType===ee.PARSER&&(this.generateRuleBypassTransitions(t),this.verifyATN(t)),t}checkVersion(){let e=this.data[this.pos++];if(e!==Js.SERIALIZED_VERSION)throw new Error("Could not deserialize ATN with version "+e+" (expected "+Js.SERIALIZED_VERSION+").")}readATN(){let e=this.data[this.pos++],t=this.data[this.pos++];return new ee(e,t)}readStates(e){let t,i,n=[],a=[],o=this.data[this.pos++];for(let f=0;f<o;f++){let x=this.data[this.pos++];if(x===$.INVALID_TYPE){e.addState(null);continue}let R=this.data[this.pos++],S=this.stateFactory(x,R);if(x===$.LOOP_END){let M=this.data[this.pos++];n.push([S,M])}else if(S instanceof Oi){let M=this.data[this.pos++];a.push([S,M])}e.addState(S)}for(t=0;t<n.length;t++){let f=n[t];f[0].loopBackState=e.states[f[1]]??void 0}for(t=0;t<a.length;t++){let f=a[t];f[0].endState=e.states[f[1]]}let l=this.data[this.pos++];for(t=0;t<l;t++)i=this.data[this.pos++],e.states[i].nonGreedy=!0;let h=this.data[this.pos++];for(t=0;t<h;t++)i=this.data[this.pos++],e.states[i].isLeftRecursiveRule=!0}readRules(e){let t,i=this.data[this.pos++];for(e.grammarType===ee.LEXER&&(e.ruleToTokenType=new Array(i),e.ruleToTokenType.fill(0)),e.ruleToStartState=new Array(i),e.ruleToStartState.fill(null),t=0;t<i;t++){let n=this.data[this.pos++];if(e.ruleToStartState[t]=e.states[n],e.grammarType===ee.LEXER){let a=this.data[this.pos++];e.ruleToTokenType[t]=a}}for(e.ruleToStopState=new Array(i),e.ruleToStopState.fill(null),t=0;t<e.states.length;t++){let n=e.states[t];n instanceof ar&&(e.ruleToStopState[n.ruleIndex]=n,e.ruleToStartState[n.ruleIndex].stopState=n)}}readModes(e){let t=this.data[this.pos++];for(let i=0;i<t;i++){let n=this.data[this.pos++];e.modeToStartState.push(e.states[n])}}readSets(e,t){let i=this.data[this.pos++];for(let n=0;n<i;n++){let a=new or;t.push(a);let o=this.data[this.pos++];this.data[this.pos++]!==0&&a.addOne(-1);for(let h=0;h<o;h++){let f=this.data[this.pos++],x=this.data[this.pos++];a.addRange(f,x)}}}readEdges(e,t){let i,n,a,o,l,h=this.data[this.pos++];for(i=0;i<h;i++){let f=this.data[this.pos++],x=this.data[this.pos++],R=this.data[this.pos++],S=this.data[this.pos++],M=this.data[this.pos++],O=this.data[this.pos++];o=this.edgeFactory(e,R,x,S,M,O,t),e.states[f].addTransition(o)}for(i=0;i<e.states.length;i++)for(a=e.states[i],n=0;n<a.transitions.length;n++){let f=a.transitions[n];if(!(f instanceof P3))continue;let x=-1;e.ruleToStartState[f.target.ruleIndex].isLeftRecursiveRule&&f.precedence===0&&(x=f.target.ruleIndex),o=new Qs(f.followState,x),e.ruleToStopState[f.target.ruleIndex].addTransition(o)}for(i=0;i<e.states.length;i++){if(a=e.states[i],a instanceof Oi){if(!a.endState)throw new Error("IllegalState");if(a.endState.startState)throw new Error("IllegalState");a.endState.startState=a}if(a instanceof Xb)for(n=0;n<a.transitions.length;n++)l=a.transitions[n].target,l instanceof C3&&(l.loopBackState=a);else if(a instanceof y3)for(n=0;n<a.transitions.length;n++)l=a.transitions[n].target,l instanceof ni&&(l.loopBackState=a)}}readDecisions(e){let t=this.data[this.pos++];for(let i=0;i<t;i++){let n=this.data[this.pos++],a=e.states[n];e.decisionToState.push(a),a.decision=i}}readLexerActions(e){if(e.grammarType===ee.LEXER){let t=this.data[this.pos++];e.lexerActions=[];for(let i=0;i<t;i++){let n=this.data[this.pos++],a=this.data[this.pos++],o=this.data[this.pos++];e.lexerActions.push(this.lexerActionFactory(n,a,o))}}}generateRuleBypassTransitions(e){let t,i=e.ruleToStartState.length;for(t=0;t<i;t++)e.ruleToTokenType[t]=e.maxTokenType+t+1;for(t=0;t<i;t++)this.generateRuleBypassTransition(e,t)}generateRuleBypassTransition(e,t){let i,n,a=new Zb;a.ruleIndex=t,e.addState(a);let o=new R3;o.ruleIndex=t,e.addState(o),a.endState=o,e.defineDecisionState(a),o.startState=a;let l=null,h=null;if(e.ruleToStartState[t].isLeftRecursiveRule){for(h=null,i=0;i<e.states.length;i++)if(n=e.states[i],this.stateIsEndStateFor(n,t)){h=n,l=n.loopBackState.transitions[0];break}if(l===null)throw new Error("Couldn't identify final state of the precedence rule prefix section.")}else h=e.ruleToStopState[t];for(i=0;i<e.states.length;i++){n=e.states[i];for(let R of n.transitions)R!==l&&R.target===h&&(R.target=o)}let f=e.ruleToStartState[t];for(;f.transitions.length>0;){let R=f.removeTransition(f.transitions.length-1);a.addTransition(R)}e.ruleToStartState[t].addTransition(new Qs(a)),h&&o.addTransition(new Qs(h));let x=new Jb;e.addState(x),x.addTransition(new ea(o,e.ruleToTokenType[t])),a.addTransition(new Qs(x))}stateIsEndStateFor(e,t){if(e.ruleIndex!==t||!(e instanceof ni))return null;let i=e.transitions[e.transitions.length-1].target;return i instanceof Fn&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof ar?e:null}markPrecedenceDecisions(e){for(let t of e.states)if(t instanceof ni&&e.ruleToStartState[t.ruleIndex].isLeftRecursiveRule){let i=t.transitions[t.transitions.length-1].target;i instanceof Fn&&i.epsilonOnlyTransitions&&i.transitions[0].target instanceof ar&&(t.precedenceRuleDecision=!0)}}verifyATN(e){if(this.deserializationOptions.verifyATN){for(let t of e.states)if(t!==null)if(this.checkCondition(t.epsilonOnlyTransitions||t.transitions.length<=1),t instanceof C3)this.checkCondition(t.loopBackState!==null);else if(t instanceof ni)if(this.checkCondition(t.loopBackState!==null),this.checkCondition(t.transitions.length===2),t.transitions[0].target instanceof v3)this.checkCondition(t.transitions[1].target instanceof Fn),this.checkCondition(!t.nonGreedy);else if(t.transitions[0].target instanceof Fn)this.checkCondition(t.transitions[1].target instanceof v3),this.checkCondition(t.nonGreedy);else throw new Error("IllegalState");else t instanceof y3?(this.checkCondition(t.transitions.length===1),this.checkCondition(t.transitions[0].target instanceof ni)):t instanceof Fn?this.checkCondition(t.loopBackState!==null):t instanceof S3?this.checkCondition(t.stopState!==null):t instanceof Oi?this.checkCondition(t.endState!==null):t instanceof R3?this.checkCondition(t.startState!==null):t instanceof Fi?this.checkCondition(t.transitions.length<=1||t.decision>=0):this.checkCondition(t.transitions.length<=1||t instanceof ar)}}checkCondition(e,t){if(!e)throw t==null&&(t="IllegalState"),t}edgeFactory(e,t,i,n,a,o,l){let h=e.states[i];switch(t){case G.EPSILON:return new Qs(h);case G.RANGE:return o!==0?new T3(h,w.EOF,a):new T3(h,n,a);case G.RULE:return new P3(e.states[n],a,o,h);case G.PREDICATE:return new vg(h,n,a,o!==0);case G.PRECEDENCE:return new n8(h,n);case G.ATOM:return o!==0?new ea(h,w.EOF):new ea(h,n);case G.ACTION:return new yg(h,n,a,o!==0);case G.SET:return new U3(h,l[n]);case G.NOT_SET:return new w3(h,l[n]);case G.WILDCARD:return new i8(h);default:throw new Error("The specified transition type: "+t+" is not valid.")}}stateFactory(e,t){let i=Js.stateTypeMapper.get(e);if(!i)throw new Error("The specified state type "+e+" is not valid.");let n=new i;return n.ruleIndex=t,n}lexerActionFactory(e,t,i){let n=Js.lexerActionFactoryMapper.get(e);if(!n)throw new Error("The specified lexer action type "+e+" is not valid.");return n(t,i)}},p8=class Ug extends Ir{static{E(this,"OrderedHashMap")}#e=[];clear(){super.clear(),this.#e=[]}get(e){return super.get(e)}set(e,t){let i=super.set(e,t);return i===void 0&&this.#e.push(e),i}setIfAbsent(e,t){let i=super.setIfAbsent(e,t);return i===void 0&&this.#e.push(e),i}values(){return{[Symbol.iterator]:()=>{let e=0;return{next:E(()=>e<this.#e.length?{done:!1,value:super.get(this.#e[e++])}:{done:!0,value:void 0},"next")}}}}keys(){return this.#e[Symbol.iterator]()}equals(e){return e instanceof Ug?super.equals(e):!1}},r9=class A3{static{E(this,"ATNSerializer")}atn;data=[];sets=new p8(Ii.instance);nonGreedyStates=[];precedenceStates=[];constructor(e){this.atn=e}static getSerialized(e){return new A3(e).serialize()}static serializeSets(e,t){e.push(t.length);for(let i of t){let n=i.contains(w.EOF),a=[...i];n&&a[0].stop===w.EOF?e.push(a.length-1):e.push(a.length),e.push(n?1:0);for(let o of a){if(o.start===w.EOF){if(o.stop===w.EOF)continue;e.push(0)}else e.push(o.start);e.push(o.stop)}}}serialize(){this.addPreamble();let e=this.addEdges();this.addNonGreedyStates(),this.addPrecedenceStates(),this.addRuleStatesAndLexerTokenTypes(),this.addModeStartStates();let t=this.addSets();return this.addEdges(e,t),this.addDecisionStartStates(),this.addLexerActions(),this.data}addPreamble(){this.data.push(oi.SERIALIZED_VERSION),this.data.push(this.atn.grammarType),this.data.push(this.atn.maxTokenType)}addLexerActions(){if(this.atn.grammarType===ee.LEXER){this.data.push(this.atn.lexerActions.length);for(let e of this.atn.lexerActions)switch(this.data.push(e.actionType),e.actionType){case Pe.CHANNEL:{let t=e.channel;this.data.push(t),this.data.push(0);break}case Pe.CUSTOM:{let t=e.ruleIndex,i=e.actionIndex;this.data.push(t),this.data.push(i);break}case Pe.MODE:{let t=e.mode;this.data.push(t),this.data.push(0);break}case Pe.MORE:{this.data.push(0),this.data.push(0);break}case Pe.POP_MODE:{this.data.push(0),this.data.push(0);break}case Pe.PUSH_MODE:{let t=e.mode;this.data.push(t),this.data.push(0);break}case Pe.SKIP:{this.data.push(0),this.data.push(0);break}case Pe.TYPE:{let t=e.type;this.data.push(t),this.data.push(0);break}default:throw new Error(`The specified lexer action type ${e.actionType} is not valid.`)}}}addDecisionStartStates(){this.data.push(this.atn.decisionToState.length);for(let e of this.atn.decisionToState)this.data.push(e.stateNumber)}addEdges(...e){switch(e.length){case 0:{let t=0;this.data.push(this.atn.states.length);for(let i of this.atn.states){if(i===null){this.data.push($.INVALID_TYPE);continue}let n=i.constructor.stateType;i instanceof Fi&&i.nonGreedy&&this.nonGreedyStates.push(i.stateNumber),i instanceof S3&&i.isLeftRecursiveRule&&this.precedenceStates.push(i.stateNumber),this.data.push(n),this.data.push(i.ruleIndex),i.constructor.stateType===$.LOOP_END?this.data.push(i.loopBackState.stateNumber):i instanceof Oi&&this.data.push(i.endState.stateNumber),i.constructor.stateType!==$.RULE_STOP&&(t+=i.transitions.length);for(let a of i.transitions){let o=a.transitionType;if(o===G.SET||o===G.NOT_SET){let l=a;this.sets.set(l.set,!0)}}}return t}case 2:{let[t,i]=e;this.data.push(t);for(let n of this.atn.states)if(n!==null&&n.constructor.stateType!==$.RULE_STOP)for(let a of n.transitions){if(this.atn.states[a.target.stateNumber]===null)throw new Error("Cannot serialize a transition to a removed state.");let o=n.stateNumber,l=a.target.stateNumber,h=a.transitionType,f=0,x=0,R=0;switch(h){case G.RULE:{l=a.followState.stateNumber,f=a.target.stateNumber,x=a.ruleIndex,R=a.precedence;break}case G.PRECEDENCE:{f=a.precedence;break}case G.PREDICATE:{let S=a;f=S.ruleIndex,x=S.predIndex,R=S.isCtxDependent?1:0;break}case G.RANGE:{f=a.start,x=a.stop,f===w.EOF&&(f=0,R=1);break}case G.ATOM:{f=a.labelValue,f===w.EOF&&(f=0,R=1);break}case G.ACTION:{let S=a;f=S.ruleIndex,x=S.actionIndex,R=S.isCtxDependent?1:0;break}case G.SET:{f=i.get(a.set);break}case G.NOT_SET:{f=i.get(a.set);break}case G.WILDCARD:break;default:}this.data.push(o),this.data.push(l),this.data.push(h),this.data.push(f),this.data.push(x),this.data.push(R)}break}default:throw new Error("Invalid number of arguments")}}addSets(){A3.serializeSets(this.data,[...this.sets.keys()]);let e=new Ir,t=0;for(let i of this.sets.keys())e.set(i,t++);return e}addModeStartStates(){let e=this.atn.modeToStartState.length;if(this.data.push(e),e>0)for(let t of this.atn.modeToStartState)this.data.push(t.stateNumber)}addRuleStatesAndLexerTokenTypes(){let e=this.atn.ruleToStartState.length;this.data.push(e);for(let t=0;t<e;t++){let i=this.atn.ruleToStartState[t];this.data.push(i.stateNumber),this.atn.grammarType===ee.LEXER&&this.data.push(this.atn.ruleToTokenType[t])}}addPrecedenceStates(){this.data.push(this.precedenceStates.length);for(let e of this.precedenceStates)this.data.push(e)}addNonGreedyStates(){this.data.push(this.nonGreedyStates.length);for(let e of this.nonGreedyStates)this.data.push(e)}},jn=class M3{static{E(this,"DFAState")}stateNumber=-1;configs;edges=[];isAcceptState=!1;prediction=-1;lexerActionExecutor=null;requiresFullContext=!1;predicates=null;constructor(e){e&&(this.configs=e)}static fromState(e){let t=new M3;return t.stateNumber=e,t}static fromConfigs(e){return new M3(e)}static hashCode(e){return e.configs.hashCode()}static equals(e,t){return e.configs.equals(t.configs)}getAltSet(){let e=new Set;for(let t of this.configs)e.add(t.alt);return e.size===0?null:e}toString(){let e="";return e+=this.stateNumber,e+=":",e+=this.configs?this.configs.toString():"",this.isAcceptState&&(e+="=>",this.predicates?e+=Vn(this.predicates):e+=this.prediction),e.toString()}},yr=class{static{E(this,"ATNSimulator")}static ERROR=jn.fromState(2147483647);atn;sharedContextCache;constructor(r,e){return this.atn=r,this.sharedContextCache=e,this}getCachedContext(r){if(!this.sharedContextCache)return r;let e=new Ir(Ii.instance);return gg(r,this.sharedContextCache,e)}},i9=class wg{static{E(this,"CodePointTransitions")}static createWithCodePoint(e,t){return wg.createWithCodePointRange(e,t,t)}static createWithCodePointRange(e,t,i){return t===i?new ea(e,t):new T3(e,t,i)}},f8=class{static{E(this,"DecisionInfo")}decision=0;invocations=0;timeInPrediction=0;sllTotalLook=0;sllMinLook=0;sllMaxLook=0;sllMaxLookEvent;llTotalLook=0;llMinLook=0;llMaxLook=0;llMaxLookEvent;contextSensitivities;errors;ambiguities;predicateEvals;sllATNTransitions=0;sllDFATransitions=0;llFallback=0;llATNTransitions=0;llDFATransitions=0;constructor(r){this.decision=r,this.contextSensitivities=[],this.errors=[],this.ambiguities=[],this.predicateEvals=[]}toString(){return"{decision="+this.decision+", contextSensitivities="+this.contextSensitivities.length+", errors="+this.errors.length+", ambiguities="+this.ambiguities.length+", sllLookahead="+this.sllTotalLook+", sllATNTransitions="+this.sllATNTransitions+", sllDFATransitions="+this.sllDFATransitions+", llFallback="+this.llFallback+", llLookahead="+this.llTotalLook+", llATNTransitions="+this.llATNTransitions+"}"}},gr=class Xs extends Qe{static{E(this,"LexerATNConfig")}lexerActionExecutor;passedThroughNonGreedyDecision;constructor(e,t,i,n){return super(e,t,i??e.context,i?Le.NONE:e.semanticContext),this.lexerActionExecutor=i?n:e.lexerActionExecutor??null,this.passedThroughNonGreedyDecision=Xs.checkNonGreedyDecision(e,this.state),this}static createWithExecutor(e,t,i){return new Xs(e,t,e.context,i)}static createWithConfig(e,t,i){return new Xs(t,e,i??null,t.lexerActionExecutor)}static createWithContext(e,t,i){return new Xs({alt:t},e,i,null)}static checkNonGreedyDecision(e,t){return e.passedThroughNonGreedyDecision||"nonGreedy"in t&&t.nonGreedy}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize(7);e=H.update(e,this.state.stateNumber),e=H.update(e,this.alt),e=H.updateFromComparable(e,this.context),e=H.updateFromComparable(e,this.semanticContext),e=H.update(e,this.passedThroughNonGreedyDecision?1:0),e=H.updateFromComparable(e,this.lexerActionExecutor),e=H.finish(e,6),this.cachedHashCode=e}return this.cachedHashCode}equals(e){return this===e?!0:this.passedThroughNonGreedyDecision===e.passedThroughNonGreedyDecision&&(this.lexerActionExecutor&&e.lexerActionExecutor?this.lexerActionExecutor.equals(e.lexerActionExecutor):!e.lexerActionExecutor)&&super.equals(e)}},zn=class{static{E(this,"BaseErrorListener")}syntaxError(r,e,t,i,n,a){}reportAmbiguity(r,e,t,i,n,a,o){}reportAttemptingFullContext(r,e,t,i,n,a){}reportContextSensitivity(r,e,t,i,n,a){}},m8=class Dg extends zn{static{E(this,"ConsoleErrorListener")}static instance=new Dg;syntaxError(e,t,i,n,a,o){console.error("line "+i+":"+n+" "+a)}},x8=class extends zn{constructor(r){return super(),this.delegates=r,this}static{E(this,"ProxyErrorListener")}syntaxError(r,e,t,i,n,a){this.delegates.forEach(o=>{o.syntaxError(r,e,t,i,n,a)})}reportAmbiguity(r,e,t,i,n,a,o){this.delegates.forEach(l=>{l.reportAmbiguity(r,e,t,i,n,a,o)})}reportAttemptingFullContext(r,e,t,i,n,a){this.delegates.forEach(o=>{o.reportAttemptingFullContext(r,e,t,i,n,a)})}reportContextSensitivity(r,e,t,i,n,a){this.delegates.forEach(o=>{o.reportContextSensitivity(r,e,t,i,n,a)})}},Og=class Zs{static{E(this,"Recognizer")}static EOF=-1;static tokenTypeMapCache=new Map;static ruleIndexMapCache=new Map;interpreter;listeners=[m8.instance];stateNumber=-1;checkVersion(e){let t="4.13.1";t!==e&&console.error("ANTLR runtime and generated code versions disagree: "+t+"!="+e)}addErrorListener(e){this.listeners.push(e)}removeErrorListeners(){this.listeners=[]}removeErrorListener(e){for(let t=0;t<this.listeners.length;t++)if(this.listeners[t]===e){this.listeners.splice(t,1);return}}getErrorListeners(){return this.listeners}getTokenTypeMap(){let e=this.vocabulary,t=Zs.tokenTypeMapCache.get(e);if(!t){t=new Map;for(let i=0;i<=this.atn.maxTokenType;i++){let n=e.getLiteralName(i);n&&t.set(n,i);let a=e.getSymbolicName(i);a&&t.set(a,i)}t.set("EOF",w.EOF),Zs.tokenTypeMapCache.set(e,t)}return t}getRuleIndexMap(){let e=this.ruleNames,t=Zs.ruleIndexMapCache.get(e);return t||(t=new Map,e.forEach((i,n)=>t.set(i,n)),Zs.ruleIndexMapCache.set(e,t)),t}getTokenType(e){let t=this.getTokenTypeMap().get(e);return t||w.INVALID_TYPE}getErrorHeader(e){let t=e.offendingToken?.line,i=e.offendingToken?.column;return"line "+t+":"+i}get errorListenerDispatch(){return new x8(this.listeners)}sempred(e,t,i){return!0}precpred(e,t){return!0}action(e,t,i){}get atn(){return this.interpreter.atn}get state(){return this.stateNumber}set state(e){this.stateNumber=e}getParseInfo(){}},Ig=class kg{static{E(this,"CommonTokenFactory")}static DEFAULT=new kg;copyText=!1;constructor(e){this.copyText=e??!1}create(e,t,i,n,a,o,l,h){let f=ku.fromSource(e,t,n,a,o);return f.line=l,f.column=h,i?f.text=i:this.copyText&&e[1]!==null&&(f.text=e[1].getTextFromRange(a,o)),f}},c=class Fg extends Error{static{E(this,"RecognitionException")}ctx;offendingToken=null;offendingState=-1;recognizer;input;constructor(e){super(e.message),Error.captureStackTrace&&Error.captureStackTrace(this,Fg),this.message=e.message,this.recognizer=e.recognizer,this.input=e.input,this.ctx=e.ctx,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer!==null&&this.ctx!==null?this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx):null}toString(){return this.message}},Fu=class extends c{static{E(this,"LexerNoViableAltException")}startIndex;deadEndConfigs;constructor(r,e,t,i){super({message:"",recognizer:r,input:e,ctx:null}),this.startIndex=t,this.deadEndConfigs=i}toString(){let r="";return this.input&&this.startIndex>=0&&this.startIndex<this.input.size&&(r=this.input.getTextFromRange(this.startIndex,this.startIndex)),`LexerNoViableAltException(${r})`}},vr=class ii extends Og{static{E(this,"Lexer")}static DEFAULT_MODE=0;static MORE=-2;static SKIP=-3;static DEFAULT_TOKEN_CHANNEL=w.DEFAULT_CHANNEL;static HIDDEN=w.HIDDEN_CHANNEL;options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111};tokenStartCharIndex=-1;channel=0;type=0;mode=ii.DEFAULT_MODE;currentTokenColumn=0;currentTokenStartLine=0;input;token=null;hitEOF=!1;factory;#e=[];#t;constructor(e,t){super(),this.options={...this.options,...t},this.input=e,this.factory=Ig.DEFAULT}reset(e=!0){e&&this.input.seek(0),this.token=null,this.type=w.INVALID_TYPE,this.channel=w.DEFAULT_CHANNEL,this.tokenStartCharIndex=-1,this.currentTokenColumn=-1,this.currentTokenStartLine=-1,this.#t=void 0,this.hitEOF=!1,this.mode=ii.DEFAULT_MODE,this.#e=[],this.interpreter.reset()}nextToken(){if(this.input===null)throw new Error("nextToken requires a non-null input stream.");let e=this.input.mark();try{for(;;){if(this.hitEOF)return this.emitEOF(),this.token;this.token=null,this.channel=w.DEFAULT_CHANNEL,this.tokenStartCharIndex=this.input.index,this.currentTokenColumn=this.interpreter.column,this.currentTokenStartLine=this.interpreter.line,this.#t=void 0;let t=!1;for(;;){this.type=w.INVALID_TYPE;let i=ii.SKIP;try{i=this.interpreter.match(this.input,this.mode)}catch(n){if(n instanceof Fu)this.notifyListeners(n),this.recover(n);else throw n}if(this.input.LA(1)===w.EOF&&(this.hitEOF=!0),this.type===w.INVALID_TYPE&&(this.type=i),this.type===ii.SKIP){t=!0;break}if(this.type!==ii.MORE)break}if(!t)return this.token===null&&this.emit(),this.token}}finally{this.input.release(e)}}skip(){this.type=ii.SKIP}more(){this.type=ii.MORE}pushMode(e){Gn.debug&&console.log("pushMode "+e),this.#e.push(this.mode),this.mode=e}popMode(){if(this.#e.length===0)throw new Error("Empty Stack");return Gn.debug&&console.log("popMode back to "+this.#e.slice(0,-1)),this.mode=this.#e.pop(),this.mode}get modeStack(){return this.#e}emitToken(e){this.token=e}emit(){let e=this.factory.create([this,this.input],this.type,this.#t,this.channel,this.tokenStartCharIndex,this.getCharIndex()-1,this.currentTokenStartLine,this.currentTokenColumn);return this.emitToken(e),e}emitEOF(){let e=this.factory.create([this,this.input],w.EOF,void 0,w.DEFAULT_CHANNEL,this.input.index,this.input.index-1,this.line,this.column);return this.emitToken(e),e}getCharIndex(){return this.input.index}getAllTokens(){let e=[],t=this.nextToken();for(;t.type!==w.EOF;)e.push(t),t=this.nextToken();return e}notifyListeners(e){let t=this.tokenStartCharIndex,i=this.input.index,n=this.input.getTextFromRange(t,i),a="token recognition error at: '"+this.getErrorDisplay(n)+"'";this.errorListenerDispatch.syntaxError(this,null,this.currentTokenStartLine,this.currentTokenColumn,a,e)}getErrorDisplay(e){return e}getErrorDisplayForChar(e){return e.charCodeAt(0)===w.EOF?"<EOF>":e===`
40
- `?"\\n":e===" "?"\\t":e==="\r"?"\\r":e}getCharErrorDisplay(e){return"'"+this.getErrorDisplayForChar(e)+"'"}recover(e){this.input.LA(1)!==w.EOF&&(e instanceof Fu?this.interpreter.consume(this.input):this.input.consume())}get inputStream(){return this.input}set inputStream(e){this.reset(!1),this.input=e}set tokenFactory(e){this.factory=e}get tokenFactory(){return this.factory}get sourceName(){return this.input.getSourceName()}get line(){return this.interpreter.line}set line(e){this.interpreter.line=e}get column(){return this.interpreter.column}set column(e){this.interpreter.column=e}get text(){return this.#t?this.#t:this.interpreter.getText(this.input)}set text(e){this.#t=e}},Hg=class{static{E(this,"DFASerializer")}dfa;vocabulary;constructor(r,e){this.dfa=r,this.vocabulary=e}toString(){if(!this.dfa.s0)return"";let r="",e=this.dfa.getStates();for(let t of e){let i=0;i=t.edges.length;for(let n=0;n<i;n++){let a=t.edges[n];if(a&&a.stateNumber!==2147483647){r+=this.getStateString(t);let o=this.getEdgeLabel(n);r+="-",r+=o,r+="->",r+=this.getStateString(a),r+=`
41
- `}}}return r}getEdgeLabel(r){return`${this.vocabulary.getDisplayName(r-1)}`}getStateString(r){let e=r.stateNumber,t=(r.isAcceptState?":":"")+"s"+e+(r.requiresFullContext?"^":"");return r.isAcceptState?r.predicates!==null?`${t}=>${r.predicates.toString()}`:`${t}=>${r.prediction}`:`${t}`}},b8=class extends Hg{static{E(this,"LexerDFASerializer")}constructor(r){super(r,lr.EMPTY_VOCABULARY)}getEdgeLabel=E(r=>"'"+String.fromCharCode(r)+"'","getEdgeLabel")},kr=class{static{E(this,"DFA")}s0;decision;atnStartState;isPrecedenceDfa;states=new Map;constructor(r,e){this.atnStartState=r,this.decision=e??0;let t=!1;r instanceof ni&&r.precedenceRuleDecision&&(t=!0,this.s0=jn.fromState(-1)),this.isPrecedenceDfa=t}[Symbol.iterator]=()=>this.states.values()[Symbol.iterator]();getPrecedenceStartState=E(r=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");if(!(!this.s0||!this.s0.edges||r<0||r>=this.s0.edges.length))return this.s0.edges[r]},"getPrecedenceStartState");setPrecedenceStartState=E((r,e)=>{if(!this.isPrecedenceDfa)throw new Error("Only precedence DFAs may contain a precedence start state.");r<0||!this.s0||(this.s0.edges[r]=e)},"setPrecedenceStartState");getStates(){let r=[...this.states.values()];return r.sort((e,t)=>e.stateNumber-t.stateNumber),r}getState(r){return this.states.get(r.configs.hashCode())??null}getStateForConfigs(r){return this.states.get(r.hashCode())??null}addState(r){let e=r.configs.hashCode();this.states.has(e)||(this.states.set(e,r),r.stateNumber=this.states.size-1)}toString(r){return r?this.s0?new Hg(this,r).toString()??"":"":this.toString(lr.EMPTY_VOCABULARY)}toLexerString(){return this.s0?new b8(this).toString()??"":""}get length(){return this.states.size}},E3=class Bg{static{E(this,"LexerIndexedCustomAction")}offset;action;actionType;isPositionDependent=!0;cachedHashCode;constructor(e,t){this.actionType=t.actionType,this.offset=e,this.action=t}execute(e){this.action.execute(e)}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize();e=H.update(e,this.offset),e=H.updateFromComparable(e,this.action),this.cachedHashCode=H.finish(e,2)}return this.cachedHashCode}equals(e){return this===e?!0:e instanceof Bg?this.offset===e.offset&&this.action===e.action:!1}},g8=class Ou{static{E(this,"LexerActionExecutor")}lexerActions;actionType;isPositionDependent=!1;cachedHashCode;constructor(e){return this.actionType=-1,this.lexerActions=e??[],this}static append(e,t){if(e===null)return new Ou([t]);let i=e.lexerActions.concat([t]);return new Ou(i)}fixOffsetBeforeMatch(e){let t=null;for(let i=0;i<this.lexerActions.length;i++)this.lexerActions[i].isPositionDependent&&!(this.lexerActions[i]instanceof E3)&&(t===null&&(t=this.lexerActions.concat([])),t[i]=new E3(e,this.lexerActions[i]));return t===null?this:new Ou(t)}execute(e,t,i){if(t===void 0||i===void 0)return;let n=!1,a=t.index;try{for(let o of this.lexerActions){let l=o;if(o instanceof E3){let h=o.offset;t.seek(i+h),l=o.action,n=i+h!==a}else o.isPositionDependent&&(t.seek(a),n=!1);l.execute(e)}}finally{n&&t.seek(a)}}hashCode(){if(this.cachedHashCode===void 0){let e=H.initialize(7);for(let t of this.lexerActions)e=H.update(e,t.hashCode());this.cachedHashCode=H.finish(e,this.lexerActions.length)}return this.cachedHashCode}equals(e){return this===e?!0:this.cachedHashCode!==e.cachedHashCode||this.lexerActions.length!==e.lexerActions.length?!1:this.lexerActions.every((t,i)=>t.equals(e.lexerActions[i]))}},R8=class _g extends Wt{static{E(this,"OrderedHashSet")}elements=[];getOrAdd(e){let t=this.size,i=super.getOrAdd(e);return this.size>t&&this.elements.push(e),i}equals(e){return e instanceof _g?super.equals(e):!1}clear(){super.clear(),this.elements=[]}*[Symbol.iterator](){yield*this.elements}toArray(){return this.elements.slice(0)}},eg=class extends Or{static{E(this,"OrderedATNConfigSet")}constructor(){super(),this.configLookup=new R8}},Gn=class Gt extends yr{static{E(this,"LexerATNSimulator")}static debug=!1;decisionToDFA;recognizer=null;startIndex=-1;line=1;column=0;mode=vr.DEFAULT_MODE;prevAccept;options;lexerATNConfigFactory;constructor(e,t,i,n){super(t,n),this.decisionToDFA=i,this.recognizer=e,e?this.options=e.options:this.options={minDFAEdge:0,maxDFAEdge:256,minCodePoint:0,maxCodePoint:1114111}}match(e,t){this.mode=t;let i=e.mark();try{this.startIndex=e.index,this.prevAccept=void 0;let n=this.decisionToDFA[t];return n.s0?this.execATN(e,n.s0):this.matchATN(e)}finally{e.release(i)}}reset(){this.prevAccept=void 0,this.startIndex=-1,this.line=1,this.column=0,this.mode=vr.DEFAULT_MODE}clearDFA(){for(let e=0;e<this.decisionToDFA.length;e++)this.decisionToDFA[e]=new kr(this.atn.getDecisionState(e),e)}getDFA(e){return this.decisionToDFA[e]}getText(e){return e.getTextFromRange(this.startIndex,e.index-1)}consume(e){e.LA(1)===10?(this.line+=1,this.column=0):this.column+=1,e.consume()}getTokenName(e){return e===w.EOF?"EOF":"'"+String.fromCharCode(e)+"'"}matchATN(e){let t=this.atn.modeToStartState[this.mode];Gt.debug&&console.log("matchATN mode "+this.mode+" start: "+t);let i=this.mode,n=this.computeStartState(e,t),a=n.hasSemanticContext;n.hasSemanticContext=!1;let o=this.addDFAState(n);a||(this.decisionToDFA[this.mode].s0=o);let l=this.execATN(e,o);return Gt.debug&&console.log("DFA after matchATN: "+this.decisionToDFA[i].toLexerString()),l}execATN(e,t){Gt.debug&&console.log("start state closure="+t.configs),t.isAcceptState&&this.captureSimState(e,t);let i=e.LA(1);for(;;){Gt.debug&&console.log("execATN loop starting closure: "+t.configs);let n=this.getExistingTargetState(t,i);if(n||(n=this.computeTargetState(e,t,i)),n===yr.ERROR||(i!==w.EOF&&this.consume(e),n.isAcceptState&&(this.captureSimState(e,n),i===w.EOF)))break;i=e.LA(1),t=n}return this.failOrAccept(e,t.configs,i)}getExistingTargetState(e,t){if(t>=this.options.minDFAEdge&&t<=this.options.maxDFAEdge){let i=e.edges[t-this.options.minDFAEdge];return Gt.debug&&i&&console.log("reuse state "+e.stateNumber+" edge to "+i.stateNumber),i}}computeTargetState(e,t,i){let n=new eg;return this.getReachableConfigSet(e,t.configs,n,i),n.length===0?(n.hasSemanticContext||this.addDFAEdge(t,i,yr.ERROR),yr.ERROR):this.addDFAEdge(t,i,null,n)}failOrAccept(e,t,i){if(this.prevAccept?.dfaState){let{dfaState:n,index:a,line:o,column:l}=this.prevAccept;return this.accept(e,n.lexerActionExecutor,this.startIndex,a,o,l),n.prediction}if(i===w.EOF&&e.index===this.startIndex)return w.EOF;throw new Fu(this.recognizer,e,this.startIndex,t)}getReachableConfigSet(e,t,i,n){let a=ee.INVALID_ALT_NUMBER;for(let o of t){let l=o.alt===a;if(!(l&&o.passedThroughNonGreedyDecision)){Gt.debug&&console.log(`testing %s at %s
42
- `,this.getTokenName(n),o.toString(this.recognizer,!0));for(let h of o.state.transitions){let f=this.getReachableTarget(h,n);if(f){let x=o.lexerActionExecutor;x&&(x=x.fixOffsetBeforeMatch(e.index-this.startIndex));let R=n===w.EOF,S=gr.createWithExecutor(o,f,x);this.closure(e,S,i,l,!0,R)&&(a=o.alt)}}}}}accept(e,t,i,n,a,o){Gt.debug&&console.log(`ACTION %s
43
- `,t),e.seek(n),this.line=a,this.column=o,t&&this.recognizer&&t.execute(this.recognizer,e,i)}getReachableTarget(e,t){if(e.matches(t,this.options.minCodePoint,this.options.maxCodePoint))return e.target}computeStartState(e,t){let i=Ye.instance,n=new eg;for(let a=0;a<t.transitions.length;a++){let o=t.transitions[a].target,l=gr.createWithContext(o,a+1,i);this.closure(e,l,n,!1,!1,!1)}return n}closure(e,t,i,n,a,o){let l=null;if(Gt.debug&&console.log("closure("+t.toString(this.recognizer,!0)+")"),t.state.constructor.stateType===$.RULE_STOP){if(Gt.debug&&(this.recognizer!==null?console.log(`closure at %s rule stop %s
44
- `,this.recognizer.ruleNames[t.state.ruleIndex],t):console.log(`closure at rule stop %s
45
- `,t)),!t.context||t.context.hasEmptyPath()){if(!t.context||t.context.isEmpty())return i.add(t),!0;i.add(gr.createWithConfig(t.state,t,Ye.instance)),n=!0}if(t.context&&!t.context.isEmpty()){for(let h=0;h<t.context.length;h++)if(t.context.getReturnState(h)!==at.EMPTY_RETURN_STATE){let f=t.context.getParent(h),x=this.atn.states[t.context.getReturnState(h)];l=gr.createWithConfig(x,t,f),n=this.closure(e,l,i,n,a,o)}}return n}t.state.epsilonOnlyTransitions||(!n||!t.passedThroughNonGreedyDecision)&&i.add(t);for(let h of t.state.transitions)l=this.getEpsilonTarget(e,t,h,i,a,o),l&&(n=this.closure(e,l,i,n,a,o));return n}getEpsilonTarget(e,t,i,n,a,o){this.lexerATNConfigFactory||this.setupATNFactoryLookup();let l=this.lexerATNConfigFactory[i.transitionType];return l?l(e,t,i,n,a,o):null}setupATNFactoryLookup(){this.lexerATNConfigFactory=[],this.lexerATNConfigFactory[G.RULE]=(t,i,n)=>{let a=ki(i.context??void 0,n.followState.stateNumber);return gr.createWithConfig(n.target,i,a)},this.lexerATNConfigFactory[G.PRECEDENCE]=()=>{throw new Error("Precedence predicates are not supported in lexers.")},this.lexerATNConfigFactory[G.PREDICATE]=(t,i,n,a,o)=>{let l=n;return Gt.debug&&console.log("EVAL rule "+l.ruleIndex+":"+l.predIndex),a.hasSemanticContext=!0,this.evaluatePredicate(t,l.ruleIndex,l.predIndex,o)?gr.createWithConfig(n.target,i):null},this.lexerATNConfigFactory[G.ACTION]=(t,i,n)=>{if(i.context===null||i.context.hasEmptyPath()){let a=g8.append(i.lexerActionExecutor,this.atn.lexerActions[n.actionIndex]);return gr.createWithExecutor(i,n.target,a)}else return gr.createWithConfig(n.target,i)},this.lexerATNConfigFactory[G.EPSILON]=(t,i,n)=>gr.createWithConfig(n.target,i);let e=E((t,i,n,a,o,l)=>l&&n.matches(w.EOF,this.options.minCodePoint,this.options.maxCodePoint)?gr.createWithConfig(n.target,i):null,"simple");this.lexerATNConfigFactory[G.ATOM]=e,this.lexerATNConfigFactory[G.RANGE]=e,this.lexerATNConfigFactory[G.SET]=e}evaluatePredicate(e,t,i,n){if(!this.recognizer)return!0;if(!n)return this.recognizer.sempred(null,t,i);let a=this.column,o=this.line,l=e.index,h=e.mark();try{return this.consume(e),this.recognizer.sempred(null,t,i)}finally{this.column=a,this.line=o,e.seek(l),e.release(h)}}captureSimState(e,t){this.prevAccept={index:e.index,line:this.line,column:this.column,dfaState:t}}addDFAEdge(e,t,i,n){if(!i&&n){let a=n.hasSemanticContext;if(n.hasSemanticContext=!1,i=this.addDFAState(n),a)return i}return t<this.options.minDFAEdge||t>this.options.maxDFAEdge||(Gt.debug&&console.log("EDGE "+e+" -> "+i+" upon "+t),e.edges[t-this.options.minDFAEdge]=i),i}addDFAState(e){let t=this.decisionToDFA[this.mode],i=t.getStateForConfigs(e);if(i)return i;let n=jn.fromConfigs(e),a=e.firstStopState;return a&&(n.isAcceptState=!0,n.lexerActionExecutor=a.lexerActionExecutor,n.prediction=this.atn.ruleToTokenType[a.state.ruleIndex]),e.setReadonly(!0),t.addState(n),n}},y8=class{static{E(this,"ParseInfo")}atnSimulator;constructor(r){this.atnSimulator=r}getDecisionInfo(){return this.atnSimulator.getDecisionInfo()}getLLDecisions(){let r=this.atnSimulator.getDecisionInfo(),e=new Array;for(let t=0;t<r.length;t++)r[t].llFallback>0&&e.push(t);return e}getTotalTimeInPrediction(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.timeInPrediction;return e}getTotalSLLLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllTotalLook;return e}getTotalLLLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.llTotalLook;return e}getTotalSLLATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllATNTransitions;return e}getTotalLLATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.llATNTransitions;return e}getTotalATNLookaheadOps(){let r=this.atnSimulator.getDecisionInfo(),e=0;for(let t of r)e+=t.sllATNTransitions,e+=t.llATNTransitions;return e}getDFASize(r){if(r===void 0){let e=0,t=this.atnSimulator.decisionToDFA;for(let i=0;i<t.length;i++)e+=this.getDFASize(i);return e}else return this.atnSimulator.decisionToDFA[r].length}},j=class extends c{static{E(this,"NoViableAltException")}deadEndConfigs=null;startToken;constructor(r,e=null,t=null,i=null,n=null,a=null){a=a??r.context,i=i??r.getCurrentToken(),t=t??r.getCurrentToken(),e=e??r.inputStream,super({message:"",recognizer:r,input:e,ctx:a}),this.deadEndConfigs=n,this.startToken=t,this.offendingToken=i}},tg=class{static{E(this,"DoubleDict")}cacheMap;constructor(){this.cacheMap=new Ir}get(r,e){let t=this.cacheMap.get(r)??null;return t===null?null:t.get(e)??null}set(r,e,t){let i=this.cacheMap.get(r);i||(i=new Ir,this.cacheMap.set(r,i)),i.set(e,t)}},C8=class Vg{static{E(this,"SubsetEqualityComparer")}static instance=new Vg;hashCode(e){let t=H.initialize(7);return t=H.update(t,e.state.stateNumber),t=H.updateFromComparable(t,e.context),t=H.finish(t,2),t}equals(e,t){return e.state.stateNumber===t.state.stateNumber&&(e.context?.equals(t.context)??!0)}},$e=class Dr{static{E(this,"PredictionMode")}static SLL=0;static LL=1;static LL_EXACT_AMBIG_DETECTION=2;static hasSLLConflictTerminatingPrediction(e,t){if(Dr.allConfigsInRuleStopStates(t))return!0;if(e===Dr.SLL&&t.hasSemanticContext){let n=new Or;for(let a of t)a=Qe.duplicate(a,Le.NONE),n.add(a);t=n}let i=Dr.getConflictingAltSubsets(t);return Dr.hasConflictingAltSet(i)&&!Dr.hasStateAssociatedWithOneAlt(t)}static hasConfigInRuleStopState(e){for(let t of e)if(t.state instanceof ar)return!0;return!1}static allConfigsInRuleStopStates(e){for(let t of e)if(!(t.state instanceof ar))return!1;return!0}static resolvesToJustOneViableAlt(e){return Dr.getSingleViableAlt(e)}static allSubsetsConflict(e){return!Dr.hasNonConflictingAltSet(e)}static hasNonConflictingAltSet(e){for(let t of e)if(t.length===1)return!0;return!1}static hasConflictingAltSet(e){for(let t of e)if(t.length>1)return!0;return!1}static allSubsetsEqual(e){let t=null;for(let i of e)if(t===null)t=i;else if(i!==t)return!1;return!0}static getUniqueAlt(e){let t=Dr.getAlts(e);return t.length===1?t.nextSetBit(0):ee.INVALID_ALT_NUMBER}static getAlts(e){let t=new Cr;return e.forEach(i=>{t.or(i)}),t}static getConflictingAltSubsets(e){let t=new Ir(C8.instance);for(let i of e){let n=t.get(i);n||(n=new Cr,t.set(i,n)),n.set(i.alt)}return Array.from(t.values())}static getStateToAltMap(e){let t=new Ir(Ii.instance);for(let i of e){let n=t.get(i.state);n||(n=new Cr,t.set(i.state,n)),n.set(i.alt)}return t}static hasStateAssociatedWithOneAlt(e){let t={};for(let i of e){let n=i.state.stateNumber;t[n]||(t[n]=0),t[n]++}return Object.values(t).some(i=>i===1)}static getSingleViableAlt(e){let t=null;for(let i of e){let n=i.nextSetBit(0);if(t===null)t=n;else if(t!==n)return ee.INVALID_ALT_NUMBER}return t??0}},na=class re extends yr{static{E(this,"ParserATNSimulator")}static traceATNSimulator=!1;static debug;static debugAdd=!1;static debugClosure=!1;static dfaDebug=!1;static retryDebug=!1;predictionMode;decisionToDFA;parser;mergeCache=new tg;predictionState;constructor(e,t,i,n){super(t,n),this.parser=e,this.decisionToDFA=i}static getUniqueAlt(e){let t=ee.INVALID_ALT_NUMBER;for(let i of e)if(t===ee.INVALID_ALT_NUMBER)t=i.alt;else if(i.alt!==t)return ee.INVALID_ALT_NUMBER;return t}reset(){}clearDFA(){for(let e=0;e<this.decisionToDFA.length;e++)this.decisionToDFA[e]=new kr(this.atn.getDecisionState(e),e)}adaptivePredict(e,t,i){(re.debug||re.traceATNSimulator)&&console.log("adaptivePredict decision "+t+" exec LA(1)=="+this.getLookaheadName(e)+" line "+e.LT(1).line+":"+e.LT(1).column);let n=this.decisionToDFA[t];this.predictionState={input:e,startIndex:e.index,outerContext:i??void 0,dfa:n};let a=e.mark(),o=e.index;try{let l;if(n.isPrecedenceDfa?l=n.getPrecedenceStartState(this.parser.getPrecedence()):l=n.s0,!l){i||(i=u.empty),re.debug&&console.log("predictATN decision "+n.decision+" exec LA(1)=="+this.getLookaheadName(e)+", outerContext="+i.toString(this.parser.ruleNames));let x=this.computeStartState(n.atnStartState,u.empty,!1);n.isPrecedenceDfa?(x=this.applyPrecedenceFilter(x),l=this.addDFAState(n,jn.fromConfigs(x)),n.setPrecedenceStartState(this.parser.getPrecedence(),l)):(l=this.addDFAState(n,jn.fromConfigs(x)),n.s0=l)}let h=this.execATN(n,l,e,o,i);return re.debug&&console.log("DFA after predictATN: "+n.toString(this.parser.vocabulary)),h}finally{this.predictionState.dfa=void 0,this.mergeCache=new tg,e.seek(o),e.release(a)}}execATN(e,t,i,n,a){(re.debug||re.traceATNSimulator)&&console.log("execATN decision "+e.decision+", DFA state "+t+", LA(1)=="+this.getLookaheadName(i)+" line "+i.LT(1).line+":"+i.LT(1).column);let o,l=t,h=i.LA(1);for(;;){let f=this.getExistingTargetState(l,h);if(f||(f=this.computeTargetState(e,l,h)),f===yr.ERROR){let x=this.noViableAlt(i,a,l.configs,n);if(i.seek(n),o=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(l.configs,a),o!==ee.INVALID_ALT_NUMBER)return o;throw x}if(f.requiresFullContext&&this.predictionMode!==$e.SLL){let x=null;if(f.predicates!==null){re.debug&&console.log("DFA state has preds in DFA sim LL failover");let M=i.index;if(M!==n&&i.seek(n),x=this.evalSemanticContext(f.predicates,a,!0),x.length===1)return re.debug&&console.log("Full LL avoided"),x.nextSetBit(0);M!==n&&i.seek(M)}re.dfaDebug&&console.log("ctx sensitive state "+a+" in "+f);let S=this.computeStartState(e.atnStartState,a,!0);return this.reportAttemptingFullContext(e,x,f.configs,n,i.index),o=this.execATNWithFullContext(e,f,S,i,n,a),o}if(f.isAcceptState){if(f.predicates===null)return f.prediction;let x=i.index;i.seek(n);let R=this.evalSemanticContext(f.predicates,a,!0);if(R.length===0)throw this.noViableAlt(i,a,f.configs,n);return R.length===1||this.reportAmbiguity(e,f,n,x,!1,R,f.configs),R.nextSetBit(0)}l=f,h!==w.EOF&&(i.consume(),h=i.LA(1))}}getExistingTargetState(e,t){return e.edges[t+1]}computeTargetState(e,t,i){let n=this.computeReachSet(t.configs,i,!1);if(n===null)return this.addDFAEdge(e,t,i,yr.ERROR),yr.ERROR;let a=jn.fromConfigs(n),o=re.getUniqueAlt(n);if(re.debug){let l=$e.getConflictingAltSubsets(n);console.log("SLL altSubSets="+Vn(l)+", configs="+n+", predict="+o+", allSubsetsConflict="+$e.allSubsetsConflict(l)+", conflictingAlts="+this.getConflictingAlts(n))}return o!==ee.INVALID_ALT_NUMBER?(a.isAcceptState=!0,a.configs.uniqueAlt=o,a.prediction=o):$e.hasSLLConflictTerminatingPrediction(this.predictionMode,n)&&(a.configs.conflictingAlts=this.getConflictingAlts(n),a.requiresFullContext=!0,a.isAcceptState=!0,a.prediction=a.configs.conflictingAlts.nextSetBit(0)),a.isAcceptState&&a.configs.hasSemanticContext&&(this.predicateDFAState(a,this.atn.getDecisionState(e.decision)),a.predicates!==null&&(a.prediction=ee.INVALID_ALT_NUMBER)),a=this.addDFAEdge(e,t,i,a),a}getRuleName(e){return this.parser!==null&&e>=0?this.parser.ruleNames[e]:"<rule "+e+">"}getTokenName(e){if(e===w.EOF)return"EOF";let i=(this.parser?.vocabulary??lr.EMPTY_VOCABULARY).getDisplayName(e);return i===e.toString()?i:i+"<"+e+">"}getLookaheadName(e){return this.getTokenName(e.LA(1))}dumpDeadEndConfigs(e){console.log("dead end configs: ");let t=e.deadEndConfigs;for(let i of t){let n="no edges";if(i.state.transitions.length>0){let a=i.state.transitions[0];a instanceof ea?n="Atom "+this.getTokenName(a.labelValue):a instanceof U3&&(n=(a instanceof w3?"~":"")+"Set "+a.label)}console.error(i.toString(this.parser,!0)+":"+n)}}predicateDFAState(e,t){let i=t.transitions.length,n=this.getConflictingAltsOrUniqueAlt(e.configs),a=this.getPredsForAmbigAlts(n,e.configs,i);a!==null?(e.predicates=this.getPredicatePredictions(n,a),e.prediction=ee.INVALID_ALT_NUMBER):e.prediction=n.nextSetBit(0)}execATNWithFullContext(e,t,i,n,a,o){(re.debug||re.traceATNSimulator)&&console.log("execATNWithFullContext "+i);let l=!0,h=!1,f,x=i;n.seek(a);let R=n.LA(1),S=-1;for(;;){if(f=this.computeReachSet(x,R,l),f===null){let O=this.noViableAlt(n,o,x,a);n.seek(a);let W=this.getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(x,o);if(W!==ee.INVALID_ALT_NUMBER)return W;throw O}let M=$e.getConflictingAltSubsets(f);if(re.debug&&console.log("LL altSubSets="+M+", predict="+$e.getUniqueAlt(M)+", resolvesToJustOneViableAlt="+$e.resolvesToJustOneViableAlt(M)),f.uniqueAlt=re.getUniqueAlt(f),f.uniqueAlt!==ee.INVALID_ALT_NUMBER){S=f.uniqueAlt;break}else if(this.predictionMode!==$e.LL_EXACT_AMBIG_DETECTION){if(S=$e.resolvesToJustOneViableAlt(M),S!==ee.INVALID_ALT_NUMBER)break}else if($e.allSubsetsConflict(M)&&$e.allSubsetsEqual(M)){h=!0,S=$e.getSingleViableAlt(M);break}x=f,R!==w.EOF&&(n.consume(),R=n.LA(1))}return f.uniqueAlt!==ee.INVALID_ALT_NUMBER?(this.reportContextSensitivity(e,S,f,a,n.index),S):(this.reportAmbiguity(e,t,a,n.index,h,f.getAlts(),f),S)}computeReachSet(e,t,i){re.debug&&console.log("in computeReachSet, starting closure: "+e);let n=new Or(i),a=null;for(let l of e){if(re.debug&&console.log("testing "+this.getTokenName(t)+" at "+l),l.state instanceof ar){(i||t===w.EOF)&&(a===null&&(a=[]),a.push(l));continue}for(let h of l.state.transitions){let f=this.getReachableTarget(h,t);if(f!==null){let x=Qe.createWithConfig(f,l);n.add(x,this.mergeCache),re.debugAdd&&console.log("added "+x+" to intermediate")}}}let o=null;if(a===null&&t!==w.EOF&&(n.length===1||re.getUniqueAlt(n)!==ee.INVALID_ALT_NUMBER)&&(o=n),o===null){o=new Or(i);let l=new Wt,h=t===w.EOF;for(let f of n)this.closure(f,o,l,!1,i,h)}if(t===w.EOF&&(o=this.removeAllConfigsNotInRuleStopState(o,o===n)),a!==null&&(!i||!$e.hasConfigInRuleStopState(o)))for(let l of a)o.add(l,this.mergeCache);return re.traceATNSimulator&&console.log("computeReachSet "+e+" -> "+o),o.length===0?null:o}removeAllConfigsNotInRuleStopState(e,t){if($e.allConfigsInRuleStopStates(e))return e;let i=new Or(e.fullCtx);for(let n of e){if(n.state instanceof ar){i.add(n,this.mergeCache);continue}if(t&&n.state.epsilonOnlyTransitions&&this.atn.nextTokens(n.state).contains(w.EPSILON)){let o=this.atn.ruleToStopState[n.state.ruleIndex];i.add(Qe.createWithConfig(o,n),this.mergeCache)}}return i}computeStartState(e,t,i){let n=D3(this.atn,t),a=new Or(i);re.traceATNSimulator&&console.log("computeStartState from ATN state "+e+" initialContext="+n.toString(this.parser));for(let o=0;o<e.transitions.length;o++){let l=e.transitions[o].target,h=Qe.createWithContext(l,o+1,n),f=new Wt;this.closure(h,a,f,!0,i,!1)}return a}applyPrecedenceFilter(e){let t=[],i=new Or(e.fullCtx);for(let n of e){if(n.alt!==1)continue;let a=n.semanticContext.evalPrecedence(this.parser,this.predictionState.outerContext);a!==null&&(t[n.state.stateNumber]=n.context,a!==n.semanticContext?i.add(Qe.duplicate(n,a),this.mergeCache):i.add(n,this.mergeCache))}for(let n of e)if(n.alt!==1){if(!n.precedenceFilterSuppressed){let a=t[n.state.stateNumber]||null;if(a!==null&&a.equals(n.context))continue}i.add(n,this.mergeCache)}return i}getReachableTarget(e,t){return e.matches(t,0,this.atn.maxTokenType)?e.target:null}getPredsForAmbigAlts(e,t,i){let n=[];for(let o of t)e.get(o.alt)&&(n[o.alt]=Le.orContext(n[o.alt]??null,o.semanticContext));let a=0;for(let o=1;o<i+1;o++){let l=n[o]??null;l===null?n[o]=Le.NONE:l!==Le.NONE&&(a+=1)}return a===0&&(n=null),re.debug&&console.log("getPredsForAmbigAlts result "+Vn(n)),n}getPredicatePredictions(e,t){let i=[],n=!1;for(let a=1;a<t.length;a++){let o=t[a];e.get(a)&&i.push({pred:o,alt:a}),o!==Le.NONE&&(n=!0)}return n?i:null}getSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(e,t){let i=this.splitAccordingToSemanticValidity(e,t),n=i[0],a=i[1],o=this.getAltThatFinishedDecisionEntryRule(n);return o!==ee.INVALID_ALT_NUMBER||a.length>0&&(o=this.getAltThatFinishedDecisionEntryRule(a),o!==ee.INVALID_ALT_NUMBER)?o:ee.INVALID_ALT_NUMBER}getAltThatFinishedDecisionEntryRule(e){let t=[];for(let i of e)(i.reachesIntoOuterContext||i.state instanceof ar&&i.context.hasEmptyPath())&&t.indexOf(i.alt)<0&&t.push(i.alt);return t.length===0?ee.INVALID_ALT_NUMBER:Math.min(...t)}splitAccordingToSemanticValidity(e,t){let i=new Or(e.fullCtx),n=new Or(e.fullCtx);for(let a of e)a.semanticContext!==Le.NONE?a.semanticContext.evaluate(this.parser,t)?i.add(a):n.add(a):i.add(a);return[i,n]}evalSemanticContext(e,t,i){let n=new Cr;for(let a of e){if(a.pred===Le.NONE){if(n.set(a.alt),!i)break;continue}let o=a.pred.evaluate(this.parser,t);if((re.debug||re.dfaDebug)&&console.log("eval pred "+a+"="+o),o&&(n.set(a.alt),!i))break}return n}closure(e,t,i,n,a,o){this.closureCheckingStopState(e,t,i,n,a,0,o)}closureCheckingStopState(e,t,i,n,a,o,l){if((re.traceATNSimulator||re.debugClosure)&&console.log("closure("+e.toString(this.parser,!0)+")"),e.state instanceof ar)if(e.context&&!e.context.isEmpty()){for(let h=0;h<e.context.length;h++){if(e.context.getReturnState(h)===at.EMPTY_RETURN_STATE){if(a){t.add(Qe.createWithConfig(e.state,e,Ye.instance),this.mergeCache);continue}else re.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex)),this.closure_(e,t,i,n,a,o,l);continue}let f=this.atn.states[e.context.getReturnState(h)],x=e.context.getParent(h),R=Qe.createWithContext(f,e.alt,x,e.semanticContext);R.reachesIntoOuterContext=e.reachesIntoOuterContext,this.closureCheckingStopState(R,t,i,n,a,o-1,l)}return}else if(a){t.add(e,this.mergeCache);return}else re.debug&&console.log("FALLING off rule "+this.getRuleName(e.state.ruleIndex));this.closure_(e,t,i,n,a,o,l)}closure_(e,t,i,n,a,o,l){let h=e.state;h.epsilonOnlyTransitions||t.add(e,this.mergeCache);for(let f=0;f<h.transitions.length;f++){if(f===0&&this.canDropLoopEntryEdgeInLeftRecursiveRule(e))continue;let x=h.transitions[f],R=n&&!(x instanceof yg),S=this.getEpsilonTarget(e,x,R,o===0,a,l);if(S){let M=o;if(e.state.constructor.stateType===$.RULE_STOP){if(this.predictionState.dfa&&this.predictionState?.dfa.isPrecedenceDfa&&x.outermostPrecedenceReturn===this.predictionState?.dfa.atnStartState?.ruleIndex&&(S.precedenceFilterSuppressed=!0),S.reachesIntoOuterContext=!0,i.getOrAdd(S)!==S)continue;t.dipsIntoOuterContext=!0,M-=1,re.debug&&console.log("dips into outer ctx: "+S)}else{if(!x.isEpsilon&&i.getOrAdd(S)!==S)continue;x instanceof P3&&M>=0&&(M+=1)}this.closureCheckingStopState(S,t,i,R,a,M,l)}}}canDropLoopEntryEdgeInLeftRecursiveRule(e){let t=e.state;if(t.constructor.stateType!==$.STAR_LOOP_ENTRY||!e.context||!t.precedenceRuleDecision||e.context.isEmpty()||e.context.hasEmptyPath())return!1;let i=e.context.length;for(let l=0;l<i;l++)if(this.atn.states[e.context.getReturnState(l)].ruleIndex!==t.ruleIndex)return!1;let a=t.transitions[0].target.endState.stateNumber,o=this.atn.states[a];for(let l=0;l<i;l++){let h=e.context.getReturnState(l),f=this.atn.states[h];if(f.transitions.length!==1||!f.transitions[0].isEpsilon)return!1;let x=f.transitions[0].target;if(!(f.constructor.stateType===$.BLOCK_END&&x===t)&&f!==o&&x!==o&&!(x.constructor.stateType===$.BLOCK_END&&x.transitions.length===1&&x.transitions[0].isEpsilon&&x.transitions[0].target===t))return!1}return!0}getEpsilonTarget(e,t,i,n,a,o){switch(t.transitionType){case G.RULE:return this.ruleTransition(e,t);case G.PRECEDENCE:return this.precedenceTransition(e,t,i,n,a);case G.PREDICATE:return this.predTransition(e,t,i,n,a);case G.ACTION:{if(re.debug){let l=t,h=l.actionIndex===-1?65535:l.actionIndex;console.log("ACTION edge "+l.ruleIndex+":"+h)}return Qe.createWithConfig(t.target,e)}case G.EPSILON:return Qe.createWithConfig(t.target,e);case G.ATOM:case G.RANGE:case G.SET:return o&&t.matches(w.EOF,0,1)?Qe.createWithConfig(t.target,e):null;default:return null}}precedenceTransition(e,t,i,n,a){re.debug&&(console.log("PRED (collectPredicates="+i+") "+t.precedence+">=_p, ctx dependent=true"),this.parser!==null&&console.log("context surrounding pred is "+Vn(this.parser.getRuleInvocationStack())));let o=null;if(i&&n)if(a&&this.predictionState?.input){let l=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let h=t.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(l),h&&(o=Qe.createWithConfig(t.target,e))}else{let l=Le.andContext(e.semanticContext,t.getPredicate());o=Qe.createWithSemanticContext(t.target,e,l)}else o=Qe.createWithConfig(t.target,e);return re.debug&&console.log("config from pred transition="+o),o}predTransition(e,t,i,n,a){re.debug&&(console.log("PRED (collectPredicates="+i+") "+t.ruleIndex+":"+t.predIndex+", ctx dependent="+t.isCtxDependent),this.parser!==null&&console.log("context surrounding pred is "+Vn(this.parser.getRuleInvocationStack())));let o=null;if(i&&(t.isCtxDependent&&n||!t.isCtxDependent))if(a&&this.predictionState?.input){let l=this.predictionState.input.index;this.predictionState.input.seek(this.predictionState.startIndex);let h=t.getPredicate().evaluate(this.parser,this.predictionState.outerContext);this.predictionState.input.seek(l),h&&(o=Qe.createWithConfig(t.target,e))}else{let l=Le.andContext(e.semanticContext,t.getPredicate());o=Qe.createWithSemanticContext(t.target,e,l)}else o=Qe.createWithConfig(t.target,e);return re.debug&&console.log("config from pred transition="+o),o}ruleTransition(e,t){re.debug&&console.log("CALL rule "+this.getRuleName(t.target.ruleIndex)+", ctx="+e.context);let i=t.followState,n=ki(e.context??void 0,i.stateNumber);return Qe.createWithConfig(t.target,e,n)}getConflictingAlts(e){let t=$e.getConflictingAltSubsets(e);return $e.getAlts(t)}getConflictingAltsOrUniqueAlt(e){let t;return e.uniqueAlt!==ee.INVALID_ALT_NUMBER?(t=new Cr,t.set(e.uniqueAlt)):t=e.conflictingAlts,t}noViableAlt(e,t,i,n){return new j(this.parser,e,e.get(n),e.LT(1),i,t)}addDFAEdge(e,t,i,n){return re.debug&&console.log("EDGE "+t+" -> "+n+" upon "+this.getTokenName(i)),n=this.addDFAState(e,n),i<-1||i>this.atn.maxTokenType||(re.debug&&console.log(`DFA=
46
- `+e.toString(this.parser!=null?this.parser.vocabulary:lr.EMPTY_VOCABULARY)),t.edges[i+1]=n),n}addDFAState(e,t){if(t===yr.ERROR)return t;let i=e.getState(t);return i!==null?i:(t.configs.readOnly||(t.configs.optimizeConfigs(this),t.configs.setReadonly(!0)),re.traceATNSimulator&&console.log("addDFAState new "+t),e.addState(t),t)}reportAttemptingFullContext(e,t,i,n,a){if(re.debug||re.retryDebug){let o=new ye(n,a+1);console.log("reportAttemptingFullContext decision="+e.decision+":"+i+", input="+this.parser.tokenStream.getTextFromInterval(o))}this.parser.errorListenerDispatch.reportAttemptingFullContext(this.parser,e,n,a,t,i)}reportContextSensitivity(e,t,i,n,a){if(re.debug||re.retryDebug){let o=new ye(n,a+1);console.log("reportContextSensitivity decision="+e.decision+":"+i+", input="+this.parser.tokenStream.getTextFromInterval(o))}this.parser.errorListenerDispatch.reportContextSensitivity(this.parser,e,n,a,t,i)}reportAmbiguity(e,t,i,n,a,o,l){if(re.debug||re.retryDebug){let h=new ye(i,n+1);console.log("reportAmbiguity "+o+":"+l+", input="+this.parser.tokenStream.getTextFromInterval(h))}this.parser.errorListenerDispatch.reportAmbiguity(this.parser,e,i,n,a,o,l)}},Hi=class{static{E(this,"PredictionContextCache")}cache=new Ir(Ii.instance);add(r){if(r===Ye.instance)return r;let e=this.cache.get(r);return e||(this.cache.set(r,r),r)}get(r){return this.cache.get(r)}get length(){return this.cache.size}},Nu=class extends na{static{E(this,"ProfilingATNSimulator")}decisions;numDecisions=0;currentDecision=0;currentState;conflictingAltResolvedBySLL;sllStopIndex=0;llStopIndex=0;constructor(r){let e=r.interpreter.sharedContextCache;if(super(r,r.interpreter.atn,r.interpreter.decisionToDFA,e),e){this.numDecisions=this.atn.decisionToState.length,this.decisions=new Array(this.numDecisions);for(let t=0;t<this.numDecisions;t++)this.decisions[t]=new f8(t)}}adaptivePredict(r,e,t){try{this.sllStopIndex=-1,this.llStopIndex=-1,this.currentDecision=e;let i=performance.now(),n=super.adaptivePredict(r,e,t),a=performance.now();this.decisions[e].timeInPrediction+=a-i,this.decisions[e].invocations++;let o=this.sllStopIndex-this.predictionState.startIndex+1;if(this.decisions[e].sllTotalLook+=o,this.decisions[e].sllMinLook=this.decisions[e].sllMinLook===0?o:Math.min(this.decisions[e].sllMinLook,o),o>this.decisions[e].sllMaxLook&&(this.decisions[e].sllMaxLook=o,this.decisions[e].sllMaxLookEvent={decision:e,configs:null,predictedAlt:n,input:r,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}),this.llStopIndex>=0){let l=this.llStopIndex-this.predictionState.startIndex+1;this.decisions[e].llTotalLook+=l,this.decisions[e].llMinLook=this.decisions[e].llMinLook===0?l:Math.min(this.decisions[e].llMinLook,l),l>this.decisions[e].llMaxLook&&(this.decisions[e].llMaxLook=l,this.decisions[e].llMaxLookEvent={decision:e,configs:null,predictedAlt:n,input:r,startIndex:this.predictionState.startIndex,stopIndex:this.llStopIndex,fullCtx:!0})}return n}finally{this.currentDecision=-1}}getExistingTargetState(r,e){this.sllStopIndex=this.predictionState.input.index;let t=super.getExistingTargetState(r,e);return t!==void 0&&(this.decisions[this.currentDecision].sllDFATransitions++,t===yr.ERROR&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r.configs,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1})),this.currentState=t,t}computeTargetState(r,e,t){let i=super.computeTargetState(r,e,t);return this.currentState=i,i}computeReachSet(r,e,t){t&&this.predictionState?.input&&(this.llStopIndex=this.predictionState.input.index);let i=super.computeReachSet(r,e,t);return this.predictionState?.input&&(t?(this.decisions[this.currentDecision].llATNTransitions++,i===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!0})):(this.decisions[this.currentDecision].sllATNTransitions++,i===null&&this.decisions[this.currentDecision].errors.push({decision:this.currentDecision,configs:r,input:this.predictionState.input,startIndex:this.predictionState.startIndex,stopIndex:this.sllStopIndex,fullCtx:!1}))),i}reportAttemptingFullContext(r,e,t,i,n){e!==null?this.conflictingAltResolvedBySLL=e.nextSetBit(0):this.conflictingAltResolvedBySLL=t.getAlts().nextSetBit(0),this.decisions[this.currentDecision].llFallback++,e&&super.reportAttemptingFullContext(r,e,t,i,n)}reportContextSensitivity(r,e,t,i,n){e!==this.conflictingAltResolvedBySLL&&this.predictionState.input&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:t,input:this.predictionState.input,startIndex:i,stopIndex:n,fullCtx:!0}),super.reportContextSensitivity(r,e,t,i,n)}reportAmbiguity(r,e,t,i,n,a,o){let l;a?l=a.nextSetBit(0):l=o.getAlts().nextSetBit(0),this.predictionState?.input&&(o.fullCtx&&l!==this.conflictingAltResolvedBySLL&&this.decisions[this.currentDecision].contextSensitivities.push({decision:this.currentDecision,configs:o,input:this.predictionState.input,startIndex:t,stopIndex:i,fullCtx:!0}),this.decisions[this.currentDecision].ambiguities.push({ambigAlts:a,decision:this.currentDecision,configs:o,input:this.predictionState.input,startIndex:t,stopIndex:i,fullCtx:o.fullCtx})),super.reportAmbiguity(r,e,t,i,n,a,o)}getDecisionInfo(){return this.decisions}getCurrentState(){return this.currentState}},rg;(r=>{r.toString=E(e=>`(${e.pred}, ${e.alt})`,"toString")})(rg||(rg={}));var N3=class extends Error{static{E(this,"ParseCancellationException")}constructor(r){super(),this.cause=r}},n9=class{static{E(this,"InterpreterDataReader")}static parseInterpreterData(r){let e=[],t=[],i=[],n=[],a=[],o=r.split(`
47
- `),l=0,h=o[l++];if(h!=="token literal names:")throw new Error("Unexpected data entry");do{if(h=o[l++],h.length===0)break;n.push(h==="null"?null:h)}while(!0);if(h=o[l++],h!=="token symbolic names:")throw new Error("Unexpected data entry");do{if(h=o[l++],h.length===0)break;a.push(h==="null"?null:h)}while(!0);if(h=o[l++],h!=="rule names:")throw new Error("Unexpected data entry");do{if(h=o[l++],h.length===0)break;e.push(h)}while(!0);if(h=o[l++],h==="channel names:"){do{if(h=o[l++],h.length===0)break;t.push(h)}while(!0);if(h=o[l++],h!=="mode names:")throw new Error("Unexpected data entry");do{if(h=o[l++],h.length===0)break;i.push(h)}while(!0)}if(h=o[l++],h!=="atn:")throw new Error("Unexpected data entry");h=o[l++];let f=h.split(","),x,R=[];for(let M=0;M<f.length;++M){let O=f[M];O.startsWith("[")?x=Number(O.substring(1).trim()):O.endsWith("]")?x=Number(O.substring(0,O.length-1).trim()):x=Number(O.trim()),R[M]=x}return{atn:new oi().deserialize(R),vocabulary:new lr(n,a,[]),ruleNames:e,channels:t.length>0?t:void 0,modes:i.length>0?i:void 0}}},s9=class{static{E(this,"AbstractParseTreeVisitor")}visit(r){return r.accept(this)}visitChildren(r){let e=this.defaultResult(),t=r.getChildCount();for(let i=0;i<t&&this.shouldVisitNextChild(r,e);i++){let n=r.getChild(i);if(n){let a=n.accept(this);e=this.aggregateResult(e,a)}}return e}visitTerminal(r){return this.defaultResult()}visitErrorNode(r){return this.defaultResult()}defaultResult(){return null}shouldVisitNextChild(r,e){return!0}aggregateResult(r,e){return e}},a9=class qg{static{E(this,"ParseTreeWalker")}static DEFAULT=new qg;walk(e,t){if(t instanceof ra)e.visitErrorNode(t);else if(t instanceof dt)e.visitTerminal(t);else{let n=t;this.enterRule(e,n);for(let a=0;a<t.getChildCount();a++)this.walk(e,t.getChild(a));this.exitRule(e,n)}}enterRule(e,t){let i=t.ruleContext;e.enterEveryRule(i),i.enterRule(e)}exitRule(e,t){let i=t.ruleContext;i.exitRule(e),e.exitEveryRule(i)}},Wn;(r=>{r.fromString=E(e=>new v8(e),"fromString")})(Wn||(Wn={}));var v8=class{static{E(this,"CharStreamImpl")}name="";index=0;data;constructor(r){let e=[];for(let t of r)e.push(t.codePointAt(0));this.data=new Uint32Array(e)}reset(){this.index=0}consume(){if(this.index>=this.data.length)throw new Error("cannot consume EOF");this.index+=1}LA(r){if(r===0)return 0;r<0&&(r+=1);let e=this.index+r-1;return e<0||e>=this.data.length?w.EOF:this.data[e]}mark(){return-1}release(r){}seek(r){if(r<=this.index){this.index=r;return}this.index=Math.min(r,this.data.length)}getTextFromRange(r,e){return e=e??this.data.length-1,e>=this.data.length&&(e=this.data.length-1),r>=this.data.length?"":this.stringFromRange(r,e+1)}getTextFromInterval(r){let e=r.start,t=r.stop;return t>=this.data.length&&(t=this.data.length-1),e>=this.data.length?"":this.stringFromRange(e,t+1)}toString(){return this.stringFromRange(0)}get size(){return this.data.length}getSourceName(){return this.name?this.name:Iu.UNKNOWN_SOURCE_NAME}stringFromRange(r,e){let t=this.data.slice(r,e),i="";return t.forEach(n=>{i+=String.fromCodePoint(n)}),i}},jg=E(r=>r.setText!==void 0,"isWritableToken"),E8=class{static{E(this,"BufferedTokenStream")}tokenSource;tokens=[];p=-1;fetchedEOF=!1;constructor(r){this.tokenSource=r}mark(){return 0}release(r){}reset(){this.seek(0)}seek(r){this.lazyInit(),this.p=this.adjustSeekIndex(r)}get size(){return this.tokens.length}get index(){return this.p}get(r){return this.lazyInit(),this.tokens[r]}consume(){let r=!1;if(this.p>=0?this.fetchedEOF?r=this.p<this.tokens.length-1:r=this.p<this.tokens.length:r=!1,!r&&this.LA(1)===w.EOF)throw new Error("cannot consume EOF");this.sync(this.p+1)&&(this.p=this.adjustSeekIndex(this.p+1))}sync(r){let e=r-this.tokens.length+1;return e>0?this.fetch(e)>=e:!0}fetch(r){if(this.fetchedEOF)return 0;for(let e=0;e<r;e++){let t=this.tokenSource.nextToken();if(jg(t)&&(t.tokenIndex=this.tokens.length),this.tokens.push(t),t.type===w.EOF)return this.fetchedEOF=!0,e+1}return r}getTokens(r,e,t){if(this.lazyInit(),r===void 0&&e===void 0)return this.tokens;if(r??=0,e===void 0&&(e=this.tokens.length-1),r<0||e>=this.tokens.length||e<0||r>=this.tokens.length)throw new RangeError("start "+r+" or stop "+e+" not in 0.."+(this.tokens.length-1));if(r>e)return[];if(t===void 0)return this.tokens.slice(r,e+1);let i=[];e>=this.tokens.length&&(e=this.tokens.length-1);for(let n=r;n<e;n++){let a=this.tokens[n];if(a.type===w.EOF){i.push(a);break}t.has(a.type)&&i.push(a)}return i}LA(r){return this.LT(r)?.type??w.INVALID_TYPE}LB(r){return this.p-r<0?null:this.tokens[this.p-r]}LT(r){if(this.lazyInit(),r===0)return null;if(r<0)return this.LB(-r);let e=this.p+r-1;return this.sync(e),e>=this.tokens.length?this.tokens[this.tokens.length-1]:this.tokens[e]}adjustSeekIndex(r){return r}lazyInit(){this.p===-1&&this.setup()}setup(){this.sync(0),this.p=this.adjustSeekIndex(0)}setTokenSource(r){this.tokenSource=r,this.tokens=[],this.p=-1,this.fetchedEOF=!1}nextTokenOnChannel(r,e){if(this.sync(r),r>=this.tokens.length)return-1;let t=this.tokens[r];for(;t.channel!==e;){if(t.type===w.EOF)return-1;r+=1,this.sync(r),t=this.tokens[r]}return r}previousTokenOnChannel(r,e){if(r>=this.tokens.length)return this.tokens.length-1;for(;r>=0;){let t=this.tokens[r];if(t.type===w.EOF||t.channel===e)return r;--r}return r}getHiddenTokensToRight(r,e){if(e===void 0&&(e=-1),this.lazyInit(),r<0||r>=this.tokens.length)throw new Error(`${r} not in 0..${this.tokens.length-1}`);let t=this.nextTokenOnChannel(r+1,vr.DEFAULT_TOKEN_CHANNEL),i=r+1,n=t===-1?this.tokens.length-1:t;return this.filterForChannel(i,n,e)}getHiddenTokensToLeft(r,e){if(e===void 0&&(e=-1),this.lazyInit(),r<0||r>=this.tokens.length)throw new Error(`${r} not in 0..${this.tokens.length-1}`);let t=this.previousTokenOnChannel(r-1,vr.DEFAULT_TOKEN_CHANNEL);if(t===r-1)return;let i=t+1,n=r-1;return this.filterForChannel(i,n,e)}filterForChannel(r,e,t){let i=[];for(let n=r;n<e+1;n++){let a=this.tokens[n];t===-1?a.channel!==vr.DEFAULT_TOKEN_CHANNEL&&i.push(a):a.channel===t&&i.push(a)}if(i.length!==0)return i}getSourceName(){return this.tokenSource.sourceName}getText(){return this.getTextFromInterval(ye.of(0,this.size-1))}getTextFromInterval(r){let e=r.start,t=r.stop;if(e<0||t<0)return"";this.sync(t),t>=this.tokens.length&&(t=this.tokens.length-1);let i="";for(let n=e;n<=t;++n){let a=this.tokens[n];if(a.type===w.EOF)break;i+=a.text}return i}getTextFromContext(r){return this.getTextFromInterval(r.getSourceInterval())}getTextFromRange(r,e){return r!==null&&e!==null?this.getTextFromInterval(ye.of(r.tokenIndex,e.tokenIndex)):""}fill(){for(this.lazyInit();this.fetch(1e3)===1e3;);}setLine(r){this.tokenSource.line=r}setColumn(r){this.tokenSource.column=r}},Bu=class extends E8{static{E(this,"CommonTokenStream")}channel=w.DEFAULT_CHANNEL;constructor(r,e){super(r),this.channel=e??w.DEFAULT_CHANNEL}adjustSeekIndex(r){return this.nextTokenOnChannel(r,this.channel)}LB(r){if(r===0||this.index-r<0)return null;let e=this.index,t=1;for(;t<=r;)e=this.previousTokenOnChannel(e-1,this.channel),t+=1;return e<0?null:this.tokens[e]}LT(r){if(this.lazyInit(),r===0)return null;if(r<0)return this.LB(-r);let e=this.index,t=1;for(;t<r;)this.sync(e+1)&&(e=this.nextTokenOnChannel(e+1,this.channel)),t+=1;return this.tokens[e]}getNumberOfOnChannelTokens(){let r=0;this.fill();for(let e of this.tokens)if(e.channel===this.channel&&(r+=1),e.type===w.EOF)break;return r}},nr=class Ke extends vr{static{E(this,"XPathLexer")}static TOKEN_REF=1;static RULE_REF=2;static ANYWHERE=3;static ROOT=4;static WILDCARD=5;static BANG=6;static ID=7;static STRING=8;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,null,null,"'//'","'/'","'*'","'!'"];static symbolicNames=[null,"TOKEN_REF","RULE_REF","ANYWHERE","ROOT","WILDCARD","BANG","ID","STRING"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ANYWHERE","ROOT","WILDCARD","BANG","ID","NameChar","NameStartChar","STRING"];constructor(e){super(e),this.interpreter=new Gn(this,Ke._ATN,Ke.decisionsToDFA,new Hi)}get grammarFileName(){return"XPathLexer.g4"}get literalNames(){return Ke.literalNames}get symbolicNames(){return Ke.symbolicNames}get ruleNames(){return Ke.ruleNames}get serializedATN(){return Ke._serializedATN}get channelNames(){return Ke.channelNames}get modeNames(){return Ke.modeNames}action(e,t,i){t===4&&this.ID_action(e,i)}ID_action(e,t){if(t===0){let i=this.text;i.charAt(0)===i.charAt(0).toUpperCase()?this.type=Ke.TOKEN_REF:this.type=Ke.RULE_REF}}static _serializedATN=[4,0,8,48,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,1,0,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,5,4,29,8,4,10,4,12,4,32,9,4,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,5,7,42,8,7,10,7,12,7,45,9,7,1,7,1,7,1,43,0,8,1,3,3,4,5,5,7,6,9,7,11,0,13,0,15,8,1,0,2,784,0,0,8,14,27,48,57,65,90,95,95,97,122,127,159,170,170,173,173,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1536,1541,1552,1562,1564,1564,1568,1641,1646,1747,1749,1757,1759,1768,1770,1788,1791,1791,1807,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2192,2193,2200,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8203,8207,8234,8238,8255,8256,8276,8276,8288,8292,8294,8303,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65279,65279,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65529,65531,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69821,69821,69826,69826,69837,69837,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,113824,113827,118528,118573,118576,118598,119141,119145,119149,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,917505,917505,917536,917631,917760,917999,662,0,65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6276,6279,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,194560,195101,196608,201546,201552,205743,47,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,15,1,0,0,0,1,17,1,0,0,0,3,20,1,0,0,0,5,22,1,0,0,0,7,24,1,0,0,0,9,26,1,0,0,0,11,35,1,0,0,0,13,37,1,0,0,0,15,39,1,0,0,0,17,18,5,47,0,0,18,19,5,47,0,0,19,2,1,0,0,0,20,21,5,47,0,0,21,4,1,0,0,0,22,23,5,42,0,0,23,6,1,0,0,0,24,25,5,33,0,0,25,8,1,0,0,0,26,30,3,13,6,0,27,29,3,11,5,0,28,27,1,0,0,0,29,32,1,0,0,0,30,28,1,0,0,0,30,31,1,0,0,0,31,33,1,0,0,0,32,30,1,0,0,0,33,34,6,4,0,0,34,10,1,0,0,0,35,36,7,0,0,0,36,12,1,0,0,0,37,38,7,1,0,0,38,14,1,0,0,0,39,43,5,39,0,0,40,42,9,0,0,0,41,40,1,0,0,0,42,45,1,0,0,0,43,44,1,0,0,0,43,41,1,0,0,0,44,46,1,0,0,0,45,43,1,0,0,0,46,47,5,39,0,0,47,16,1,0,0,0,3,0,30,43,1,1,4,0];static __ATN;static get _ATN(){return Ke.__ATN||(Ke.__ATN=new oi().deserialize(Ke._serializedATN)),Ke.__ATN}static vocabulary=new lr(Ke.literalNames,Ke.symbolicNames,[]);get vocabulary(){return Ke.vocabulary}static decisionsToDFA=Ke._ATN.decisionToState.map((e,t)=>new kr(e,t))},L8=class extends zn{static{E(this,"XPathLexerErrorListener")}syntaxError(r,e,t,i,n,a){}},Kn=class{static{E(this,"XPathElement")}invert;nodeName;constructor(r){this.nodeName=r,this.invert=!1}toString(){return"XPathElement["+(this.invert?"!":"")+this.nodeName+"]"}},S8=class extends Kn{static{E(this,"XPathRuleAnywhereElement")}ruleIndex;constructor(r,e){super(r),this.ruleIndex=e}evaluate(r){return si.findAllRuleNodes(r,this.ruleIndex)}toString(){return"XPathRuleAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},P8=class extends Kn{static{E(this,"XPathRuleElement")}ruleIndex;constructor(r,e){super(r),this.ruleIndex=e}evaluate(r){let e=[];for(let t of si.getChildren(r))t instanceof u&&(t.ruleIndex===this.ruleIndex&&!this.invert||t.ruleIndex!==this.ruleIndex&&this.invert)&&e.push(t);return e}toString(){return"XPathRuleElement["+(this.invert?"!":"")+this.nodeName+"]"}},T8=class extends Kn{static{E(this,"XPathTokenAnywhereElement")}tokenType;constructor(r,e){super(r),this.tokenType=e}evaluate(r){return si.findAllTokenNodes(r,this.tokenType)}toString(){return"XPathTokenAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},A8=class extends Kn{static{E(this,"XPathTokenElement")}tokenType;constructor(r,e){super(r),this.tokenType=e}evaluate(r){let e=[];for(let t of si.getChildren(r))t instanceof dt&&t.symbol&&(t.symbol.type===this.tokenType&&!this.invert||t.symbol.type!==this.tokenType&&this.invert)&&e.push(t);return e}toString(){return"XPathTokenElement["+(this.invert?"!":"")+this.nodeName+"]"}},M8=class extends Kn{static{E(this,"XPathWildcardAnywhereElement")}constructor(){super(I3.WILDCARD)}evaluate(r){return this.invert?[]:si.descendants(r)}toString(){return"XPathWildcardAnywhereElement["+(this.invert?"!":"")+this.nodeName+"]"}},N8=class extends Kn{static{E(this,"XPathWildcardElement")}constructor(){super(I3.WILDCARD)}evaluate(r){let e=[];if(this.invert)return e;for(let t of si.getChildren(r))e.push(t);return e}toString(){return"XPathWildcardElement["+(this.invert?"!":"")+this.nodeName+"]"}},I3=class Gg{static{E(this,"XPath")}static WILDCARD="*";static NOT="!";path;elements;parser;constructor(e,t){this.parser=e,this.path=t,this.elements=this.split(t)}static findAll(e,t,i){return new Gg(i,t).evaluate(e)}split(e){let t=new nr(Wn.fromString(e));t.recover=h=>{throw h},t.removeErrorListeners(),t.addErrorListener(new L8);let i=new Bu(t);try{i.fill()}catch(h){if(h instanceof Fu){let x="Invalid tokens or characters at index "+t.column+" in path '"+e+"' -- "+h.message;throw new RangeError(x)}throw h}let n=i.getTokens(),a=[],o=n.length,l=0;e:for(;l<o;){let h=n[l],f;switch(h.type){case nr.ROOT:case nr.ANYWHERE:let x=h.type===nr.ANYWHERE;l++,f=n[l];let R=f.type===nr.BANG;R&&(l++,f=n[l]);let S=this.getXPathElement(f,x);S.invert=R,a.push(S),l++;break;case nr.TOKEN_REF:case nr.RULE_REF:case nr.WILDCARD:a.push(this.getXPathElement(h,!1)),++l;break;case w.EOF:break e;default:throw new Error("Unknown path element "+h)}}return a}evaluate(e){let t=new u(null);t.addChild(e);let i=new Set([t]),n=0;for(;n<this.elements.length;){let a=new Set;for(let o of i)o.getChildCount()>0&&this.elements[n].evaluate(o).forEach(h=>{a.add(h)},a);n++,i=a}return i}getXPathElement(e,t){if(e.type===w.EOF)throw new Error("Missing path element at end of path");let i=e.text;if(i==null)throw new Error("Expected wordToken to have text content.");let n=this.parser.getTokenType(i),a=this.parser.getRuleIndex(i);switch(e.type){case nr.WILDCARD:return t?new M8:new N8;case nr.TOKEN_REF:case nr.STRING:if(n===w.INVALID_TYPE)throw new Error(i+" at index "+e.start+" isn't a valid token name");return t?new T8(i,n):new A8(i,n);default:if(a===-1)throw new Error(i+" at index "+e.start+" isn't a valid rule name");return t?new S8(i,a):new P8(i,a)}}},Wg=class{static{E(this,"Chunk")}},U8=class{static{E(this,"ParseTreeMatch")}tree;pattern;labels;mismatchedNode;constructor(r,e,t,i){this.tree=r,this.pattern=e,this.labels=t,this.mismatchedNode=i}get(r){let e=this.labels.get(r);return!e||e.length===0?null:e[e.length-1]}getAll(r){return this.labels.get(r)??[]}getLabels(){return this.labels}getMismatchedNode(){return this.mismatchedNode}succeeded(){return!this.mismatchedNode}getPattern(){return this.pattern}getTree(){return this.tree}toString(){return`Match ${this.succeeded()?"succeeded":"failed"}; found ${this.getLabels().size} labels`}},w8=class{static{E(this,"ParseTreePattern")}patternRuleIndex;pattern;patternTree;matcher;constructor(r,e,t,i){this.matcher=r,this.patternRuleIndex=t,this.pattern=e,this.patternTree=i}match(r){return this.matcher.match(r,this)}matches(r){return this.matcher.match(r,this).succeeded()}findAll(r,e){let t=I3.findAll(r,e,this.matcher.getParser()),i=new Array;for(let n of t){let a=this.match(n);a.succeeded()&&i.push(a)}return i}getMatcher(){return this.matcher}getPattern(){return this.pattern}getPatternRuleIndex(){return this.patternRuleIndex}getPatternTree(){return this.patternTree}},ta=class extends c{static{E(this,"InputMismatchException")}constructor(r){super({message:"",recognizer:r,input:r.inputStream,ctx:r.context}),this.offendingToken=r.getCurrentToken()}},ia=class extends c{static{E(this,"FailedPredicateException")}ruleIndex=0;predicateIndex=0;predicate;constructor(r,e,t=null){super({message:D8(e??"no predicate",t??null),recognizer:r,input:r.inputStream,ctx:r.context});let n=r.atn.states[r.state].transitions[0];n instanceof vg?(this.ruleIndex=n.ruleIndex,this.predicateIndex=n.predIndex):(this.ruleIndex=0,this.predicateIndex=0),this.predicate=e,this.offendingToken=r.getCurrentToken()}},D8=E((r,e)=>e!==null?e:"failed predicate: {"+r+"}?","formatMessage"),_u=class{static{E(this,"DefaultErrorStrategy")}errorRecoveryMode=!1;lastErrorIndex=-1;lastErrorStates=new or;nextTokensContext=null;nextTokenState=0;reset(r){this.endErrorCondition(r)}beginErrorCondition(r){this.errorRecoveryMode=!0}inErrorRecoveryMode(r){return this.errorRecoveryMode}endErrorCondition(r){this.errorRecoveryMode=!1,this.lastErrorStates=new or,this.lastErrorIndex=-1}reportMatch(r){this.endErrorCondition(r)}reportError(r,e){this.inErrorRecoveryMode(r)||(this.beginErrorCondition(r),e instanceof j?this.reportNoViableAlternative(r,e):e instanceof ta?this.reportInputMismatch(r,e):e instanceof ia?this.reportFailedPredicate(r,e):r.notifyErrorListeners(e.message,e.offendingToken,e))}recover(r,e){this.lastErrorIndex===r.inputStream?.index&&this.lastErrorStates.contains(r.state)&&r.consume(),this.lastErrorIndex=r.inputStream?.index??0,this.lastErrorStates.addOne(r.state);let t=this.getErrorRecoverySet(r);this.consumeUntil(r,t)}sync(r){if(this.inErrorRecoveryMode(r))return;let e=r.atn.states[r.state],t=r.tokenStream.LA(1),i=r.atn.nextTokens(e);if(i.contains(t)){this.nextTokensContext=null,this.nextTokenState=$.INVALID_STATE_NUMBER;return}if(i.contains(w.EPSILON)){this.nextTokensContext===null&&(this.nextTokensContext=r.context,this.nextTokenState=r.state);return}switch(e.constructor.stateType){case $.BLOCK_START:case $.STAR_BLOCK_START:case $.PLUS_BLOCK_START:case $.STAR_LOOP_ENTRY:{if(this.singleTokenDeletion(r)!==null)return;throw new ta(r)}case $.PLUS_LOOP_BACK:case $.STAR_LOOP_BACK:{this.reportUnwantedToken(r);let n=new or;n.addSet(r.getExpectedTokens());let a=n.addSet(this.getErrorRecoverySet(r));this.consumeUntil(r,a);break}default:}}reportNoViableAlternative(r,e){if(e.message.length>0){r.notifyErrorListeners(e.message,e.offendingToken,e);return}let t=r.tokenStream,i;t!==null&&e.startToken?e.startToken.type===w.EOF?i="<EOF>":i=t.getTextFromRange(e.startToken,e.offendingToken):i="<unknown input>";let n="no viable alternative at input "+this.escapeWSAndQuote(i);r.notifyErrorListeners(n,e.offendingToken,e)}reportInputMismatch(r,e){if(e.message.length>0){r.notifyErrorListeners(e.message,e.offendingToken,e);return}let t="mismatched input "+this.getTokenErrorDisplay(e.offendingToken)+" expecting "+e.getExpectedTokens().toStringWithVocabulary(r.vocabulary);r.notifyErrorListeners(t,e.offendingToken,e)}reportFailedPredicate(r,e){let i="rule "+r.ruleNames[r.context.ruleIndex]+" "+e.message;r.notifyErrorListeners(i,e.offendingToken,e)}reportUnwantedToken(r){if(this.inErrorRecoveryMode(r))return;this.beginErrorCondition(r);let e=r.getCurrentToken(),t=this.getTokenErrorDisplay(e),i=this.getExpectedTokens(r),n="extraneous input "+t+" expecting "+i.toStringWithVocabulary(r.vocabulary);r.notifyErrorListeners(n,e,null)}reportMissingToken(r){if(this.inErrorRecoveryMode(r))return;this.beginErrorCondition(r);let e=r.getCurrentToken(),i="missing "+this.getExpectedTokens(r).toStringWithVocabulary(r.vocabulary)+" at "+this.getTokenErrorDisplay(e);r.notifyErrorListeners(i,e,null)}recoverInline(r){let e=this.singleTokenDeletion(r);if(e)return r.consume(),e;if(this.singleTokenInsertion(r))return this.getMissingSymbol(r);throw new ta(r)}singleTokenInsertion(r){let e=r.tokenStream?.LA(1)??-1,t=r.atn,n=t.states[r.state].transitions[0].target;return t.nextTokens(n,r.context??void 0).contains(e)?(this.reportMissingToken(r),!0):!1}singleTokenDeletion(r){let e=r.tokenStream?.LA(2)??-1;if(this.getExpectedTokens(r).contains(e)){this.reportUnwantedToken(r),r.consume();let i=r.getCurrentToken();return this.reportMatch(r),i}return null}getMissingSymbol(r){let e=r.getCurrentToken(),t=this.getExpectedTokens(r),i=w.INVALID_TYPE;t.length!==0&&(i=t.minElement);let n;i===w.EOF?n="<missing EOF>":n="<missing "+r.vocabulary.getDisplayName(i)+">";let a=e,o=r.tokenStream?.LT(-1);return a.type===w.EOF&&o!==null&&(a=o),r.getTokenFactory().create(a.source,i,n,w.DEFAULT_CHANNEL,-1,-1,a.line,a.column)}getExpectedTokens(r){return r.getExpectedTokens()}getTokenErrorDisplay(r){if(r===null)return"<no token>";let e=r.text;return e||(r.type===w.EOF?e="<EOF>":e="<"+r.type+">"),this.escapeWSAndQuote(e)}escapeWSAndQuote(r){return r=r.replace(/\n/g,"\\n"),r=r.replace(/\r/g,"\\r"),r=r.replace(/\t/g,"\\t"),"'"+r+"'"}getErrorRecoverySet(r){let e=r.atn,t=r.context,i=new or;for(;t!==null&&t.invokingState>=0;){let a=e.states[t.invokingState].transitions[0],o=e.nextTokens(a.followState);i.addSet(o),t=t.parent}return i.removeOne(w.EPSILON),i}consumeUntil(r,e){let t=r.tokenStream?.LA(1)??-1;for(;t!==w.EOF&&!e.contains(t);)r.consume(),t=r.tokenStream?.LA(1)??-1}},k3=class extends _u{static{E(this,"BailErrorStrategy")}recover(r,e){throw new N3(e)}recoverInline(r){let e=new ta(r);throw new N3(e)}sync(r){}},O8=class{static{E(this,"ListTokenSource")}sourceName;tokenFactory=Ig.DEFAULT;tokens=[];i=0;eofToken=null;constructor(r,e){this.tokens=r,this.sourceName=e??""}get column(){if(this.i<this.tokens.length)return this.tokens[this.i].column;if(this.eofToken!==null)return this.eofToken.column;if(this.tokens.length>0){let r=this.tokens[this.tokens.length-1],e=r.text;if(e){let t=e.lastIndexOf(`
48
- `);if(t>=0)return e.length-t-1}return r.column+r.stop-r.start+1}return 0}nextToken(){if(this.i>=this.tokens.length){if(this.eofToken===null){let e=-1;if(this.tokens.length>0){let i=this.tokens[this.tokens.length-1].stop;i!==-1&&(e=i+1)}let t=Math.max(-1,e-1);this.eofToken=this.tokenFactory.create([this,this.inputStream],w.EOF,"EOF",w.DEFAULT_CHANNEL,e,t,this.line,this.column)}return this.eofToken}let r=this.tokens[this.i];return this.i===this.tokens.length-1&&r.type===w.EOF&&(this.eofToken=r),this.i++,r}get line(){if(this.i<this.tokens.length)return this.tokens[this.i].line;if(this.eofToken!==null)return this.eofToken.line;if(this.tokens.length>0){let r=this.tokens[this.tokens.length-1],e=r.line,t=r.text;if(t)for(let i of t)i===`
49
- `&&e++;return e}return 1}get inputStream(){return this.i<this.tokens.length?this.tokens[this.i].inputStream:this.eofToken!==null?this.eofToken.inputStream:this.tokens.length>0?this.tokens[this.tokens.length-1].inputStream:null}getSourceName(){if(this.sourceName!==null)return this.sourceName;let r=this.inputStream;return r!==null?r.getSourceName():"List"}},I8=class extends u{static{E(this,"InterpreterRuleContext")}#e;constructor(r,e,t){super(e,t),this.#e=r}get ruleIndex(){return this.#e}},k8=class{static{E(this,"TraceListener")}parser;constructor(r){this.parser=r}enterEveryRule(r){console.log("enter "+this.parser.ruleNames[r.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitTerminal(r){console.log("consume "+r.getSymbol()+" rule "+this.parser.ruleNames[this.parser.context.ruleIndex])}exitEveryRule(r){console.log("exit "+this.parser.ruleNames[r.ruleIndex]+", LT(1)="+this.parser.inputStream?.LT(1)?.text)}visitErrorNode(r){}},F3=class extends Og{static{E(this,"Parser")}printer=null;buildParseTrees=!0;errorHandler=new _u;context=null;precedenceStack=[];parseListeners=null;syntaxErrors=0;matchedEOF=!1;tracer=null;bypassAltsAtnCache=null;#e;constructor(r){super(),this.precedenceStack.push(0),this.syntaxErrors=0,this.#e=r}reset(r=!0){r&&this.inputStream.seek(0),this.errorHandler.reset(this),this.context=null,this.syntaxErrors=0,this.matchedEOF=!1,this.setTrace(!1),this.precedenceStack=[],this.precedenceStack.push(0),this.interpreter&&this.interpreter.reset()}match(r){let e=this.getCurrentToken();return e.type===r?(r===w.EOF&&(this.matchedEOF=!0),this.errorHandler.reportMatch(this),this.consume()):(e=this.errorHandler.recoverInline(this),this.buildParseTrees&&e.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,e))),e}matchWildcard(){let r=this.getCurrentToken();return r.type>0?(this.errorHandler.reportMatch(this),this.consume()):(r=this.errorHandler.recoverInline(this),this.buildParseTrees&&r.tokenIndex===-1&&this.context.addErrorNode(this.createErrorNode(this.context,r))),r}getParseListeners(){return this.parseListeners??[]}addParseListener(r){if(r===null)throw new Error("listener");this.parseListeners===null&&(this.parseListeners=[]),this.parseListeners.push(r)}removeParseListener(r){if(this.parseListeners!==null&&r!==null){let e=this.parseListeners.indexOf(r);e>=0&&this.parseListeners.splice(e,1),this.parseListeners.length===0&&(this.parseListeners=null)}}removeParseListeners(){this.parseListeners=null}triggerEnterRuleEvent(){if(this.parseListeners!==null){let r=this.context;this.parseListeners.forEach(e=>{e.enterEveryRule(r),r.enterRule(e)})}}triggerExitRuleEvent(){if(this.parseListeners!==null){let r=this.context;this.parseListeners.slice(0).reverse().forEach(e=>{r.exitRule(e),e.exitEveryRule(r)})}}getTokenFactory(){return this.inputStream.tokenSource.tokenFactory}setTokenFactory(r){this.inputStream.tokenSource.tokenFactory=r}compileParseTreePattern(r,e,t){if(!t&&this.tokenStream!==null){let n=this.tokenStream.tokenSource;n instanceof vr&&(t=n)}if(!t)throw new Error("Parser can't discover a lexer to use");return new _8(t,this).compile(r,e)}getATNWithBypassAlts(){let r=this.serializedATN;if(r===null)throw new Error("The current parser does not support an ATN with bypass alternatives.");if(this.bypassAltsAtnCache!==null)return this.bypassAltsAtnCache;let e={readOnly:!1,verifyATN:!0,generateRuleBypassTransitions:!0};return this.bypassAltsAtnCache=new oi(e).deserialize(r),this.bypassAltsAtnCache}get numberOfSyntaxErrors(){return this.syntaxErrors}get inputStream(){return this.#e}set inputStream(r){this.tokenStream=r}get tokenStream(){return this.#e}set tokenStream(r){this.reset(!1),this.#e=r}getCurrentToken(){return this.inputStream.LT(1)}notifyErrorListeners(r,e,t){e=e??null,t=t??null,e===null&&(e=this.getCurrentToken()),this.syntaxErrors+=1;let i=e.line,n=e.column;this.errorListenerDispatch.syntaxError(this,e,i,n,r,t)}consume(){let r=this.getCurrentToken();r.type!==w.EOF&&this.tokenStream.consume();let e=this.parseListeners!==null&&this.parseListeners.length>0;if(this.buildParseTrees||e){let t;this.errorHandler.inErrorRecoveryMode(this)?t=this.context.addErrorNode(this.createErrorNode(this.context,r)):t=this.context.addTokenNode(r),e&&this.parseListeners.forEach(i=>{t instanceof ra?i.visitErrorNode(t):i.visitTerminal(t)})}return r}addContextToParseTree(){this.context?.parent&&this.context.parent.addChild(this.context)}enterRule(r,e,t){this.state=e,this.context=r,this.context.start=this.inputStream.LT(1),this.buildParseTrees&&this.addContextToParseTree(),this.triggerEnterRuleEvent()}exitRule(){this.matchedEOF?this.context.stop=this.inputStream.LT(1):this.context.stop=this.inputStream.LT(-1),this.triggerExitRuleEvent(),this.state=this.context.invokingState,this.context=this.context.parent}enterOuterAlt(r,e){r.setAltNumber(e),this.buildParseTrees&&this.context!==r&&this.context?.parent&&(this.context.parent.removeLastChild(),this.context.parent.addChild(r)),this.context=r}getPrecedence(){return this.precedenceStack.length===0?-1:this.precedenceStack[this.precedenceStack.length-1]}enterRecursionRule(r,e,t,i){this.state=e,this.precedenceStack.push(i),this.context=r,this.context.start=this.inputStream.LT(1),this.triggerEnterRuleEvent()}pushNewRecursionContext(r,e,t){let i=this.context;i.parent=r,i.invokingState=e,i.stop=this.inputStream.LT(-1),this.context=r,this.context.start=i.start,this.buildParseTrees&&this.context.addChild(i),this.triggerEnterRuleEvent()}unrollRecursionContexts(r){this.precedenceStack.pop(),this.context.stop=this.inputStream.LT(-1);let e=this.context,t=this.getParseListeners();if(t!==null&&t.length>0)for(;this.context!==r;)this.triggerExitRuleEvent(),this.context=this.context.parent;else this.context=r;e.parent=r,this.buildParseTrees&&r!==null&&r.addChild(e)}getInvokingContext(r){let e=this.context;for(;e!==null;){if(e.ruleIndex===r)return e;e=e.parent}return null}precpred(r,e){return e>=this.precedenceStack[this.precedenceStack.length-1]}isExpectedToken(r){let e=this.interpreter.atn,t=this.context,i=e.states[this.state],n=e.nextTokens(i);if(n.contains(r))return!0;if(!n.contains(w.EPSILON))return!1;for(;t!==null&&t.invokingState>=0&&n.contains(w.EPSILON);){let o=e.states[t.invokingState].transitions[0];if(n=e.nextTokens(o.followState),n.contains(r))return!0;t=t.parent}return!!(n.contains(w.EPSILON)&&r===w.EOF)}getExpectedTokens(){return this.interpreter.atn.getExpectedTokens(this.state,this.context)}getExpectedTokensWithinCurrentRule(){let r=this.interpreter.atn,e=r.states[this.state];return r.nextTokens(e)}getRuleIndex(r){return this.getRuleIndexMap().get(r)??-1}getRuleInvocationStack(r){r=r??null,r===null&&(r=this.context);let e=[];for(;r!==null;){let t=r.ruleIndex;t<0?e.push("n/a"):e.push(this.ruleNames[t]),r=r.parent}return e}getDFAStrings(){return this.interpreter.decisionToDFA.toString()}dumpDFA(){let r=!1;for(let e of this.interpreter.decisionToDFA)e.length>0&&(r&&console.log(),this.printer&&(this.printer.println("Decision "+e.decision+":"),this.printer.print(e.toString(this.vocabulary))),r=!0)}getSourceName(){return this.inputStream.getSourceName()}getParseInfo(){let r=this.interpreter;if(r instanceof Nu)return new y8(r)}setProfile(r){let e=this.interpreter,t=e.predictionMode;if(r)e instanceof Nu||(this.interpreter=new Nu(this));else if(e instanceof Nu){let i=e.sharedContextCache;if(i){let n=new na(this,this.atn,e.decisionToDFA,i);this.interpreter=n}}this.interpreter.predictionMode=t}setTrace(r){r?(this.tracer!==null&&this.removeParseListener(this.tracer),this.tracer=new k8(this),this.addParseListener(this.tracer)):(this.removeParseListener(this.tracer),this.tracer=null)}createTerminalNode(r,e){return new dt(e)}createErrorNode(r,e){return new ra(e)}},F8=class extends F3{static{E(this,"ParserInterpreter")}rootContext;overrideDecisionRoot=null;parentContextStack=[];overrideDecisionAlt=-1;overrideDecisionReached=!1;decisionToDFA;sharedContextCache=new Hi;pushRecursionContextStates;#e=-1;#t=-1;#i;#r;#n;#s;constructor(r,e,t,i,n){super(n),this.#i=r,this.#r=i,this.#n=t.slice(0),this.#s=e,this.pushRecursionContextStates=new Cr;for(let a of i.states)a instanceof ni&&a.precedenceRuleDecision&&this.pushRecursionContextStates.set(a.stateNumber);this.decisionToDFA=i.decisionToState.map((a,o)=>new kr(a,o)),this.interpreter=new na(this,i,this.decisionToDFA,this.sharedContextCache)}reset(){super.reset(),this.overrideDecisionReached=!1,this.overrideDecisionRoot=null}get atn(){return this.#r}get vocabulary(){return this.#s}get ruleNames(){return this.#n}get grammarFileName(){return this.#i}get atnState(){return this.#r.states[this.state]}parse(r){let e=this.#r.ruleToStartState[r];for(this.rootContext=this.createInterpreterRuleContext(null,$.INVALID_STATE_NUMBER,r),e.isLeftRecursiveRule?this.enterRecursionRule(this.rootContext,e.stateNumber,r,0):this.enterRule(this.rootContext,e.stateNumber,r);;){let t=this.atnState;switch(t.constructor.stateType){case $.RULE_STOP:{if(this.context?.isEmpty())if(e.isLeftRecursiveRule){let i=this.context,n=this.parentContextStack.pop();return this.unrollRecursionContexts(n[0]),i}else return this.exitRule(),this.rootContext;this.visitRuleStopState(t);break}default:{try{this.visitState(t)}catch(i){if(i instanceof c)this.state=this.#r.ruleToStopState[t.ruleIndex].stateNumber,this.errorHandler.reportError(this,i),this.recover(i);else throw i}break}}}}addDecisionOverride(r,e,t){this.#e=r,this.#t=e,this.overrideDecisionAlt=t}get overrideDecision(){return this.#e}get overrideDecisionInputIndex(){return this.#t}enterRecursionRule(r,e,t,i){this.parentContextStack.push([this.context,r.invokingState]),super.enterRecursionRule(r,e,t,i)}get serializedATN(){throw new Error("The ParserInterpreter does not support the serializedATN property.")}visitState(r){let e=1;r instanceof Fi&&(e=this.visitDecisionState(r));let t=r.transitions[e-1];switch(t.transitionType){case G.EPSILON:if(this.pushRecursionContextStates.get(r.stateNumber)&&t.target.constructor.stateType!==$.LOOP_END){let h=this.parentContextStack[this.parentContextStack.length-1],f=this.createInterpreterRuleContext(h[0],h[1],this.context.ruleIndex);this.pushNewRecursionContext(f,this.#r.ruleToStartState[r.ruleIndex].stateNumber,this.context.ruleIndex)}break;case G.ATOM:this.match(t.label.minElement);break;case G.RANGE:case G.SET:case G.NOT_SET:t.matches(this.inputStream.LA(1),w.MIN_USER_TOKEN_TYPE,65535)||this.recoverInline(),this.matchWildcard();break;case G.WILDCARD:this.matchWildcard();break;case G.RULE:let i=t.target,n=i.ruleIndex,a=this.createInterpreterRuleContext(this.context,r.stateNumber,n);i.isLeftRecursiveRule?this.enterRecursionRule(a,i.stateNumber,n,t.precedence):this.enterRule(a,t.target.stateNumber,n);break;case G.PREDICATE:let o=t;if(!this.sempred(this.context,o.ruleIndex,o.predIndex))throw new ia(this);break;case G.ACTION:let l=t;this.action(this.context,l.ruleIndex,l.actionIndex);break;case G.PRECEDENCE:if(!this.precpred(this.context,t.precedence)){let h=t.precedence;throw new ia(this,`precpred(_ctx, ${h})`)}break;default:throw new Error("UnsupportedOperationException: Unrecognized ATN transition type.")}this.state=t.target.stateNumber}visitDecisionState(r){let e=1;if(r.transitions.length>1){this.errorHandler.sync(this);let t=r.decision;t===this.#e&&this.inputStream.index===this.#t&&!this.overrideDecisionReached?(e=this.overrideDecisionAlt,this.overrideDecisionReached=!0):e=this.interpreter.adaptivePredict(this.inputStream,t,this.context)}return e}createInterpreterRuleContext(r,e,t){return new I8(t,r,e)}visitRuleStopState(r){if(this.#r.ruleToStartState[r.ruleIndex].isLeftRecursiveRule){let[i,n]=this.parentContextStack.pop();this.unrollRecursionContexts(i),this.state=n}else this.exitRule();let t=this.#r.states[this.state].transitions[0];this.state=t.followState.stateNumber}recover(r){let e=this.inputStream.index;if(this.errorHandler.recover(this,r),this.inputStream.index===e){let t=r.offendingToken;if(!t)throw new Error("Expected exception to have an offending token");let i=t.tokenSource,n=i?.inputStream??null,a=[i,n];if(r instanceof ta){let o=r.getExpectedTokens();if(!o)throw new Error("Expected the exception to provide expected tokens");let l=w.INVALID_TYPE;o.length!==0&&(l=o.minElement);let h=this.getTokenFactory().create(a,l,t.text,w.DEFAULT_CHANNEL,-1,-1,t.line,t.column);this.context.addErrorNode(this.createErrorNode(this.context,h))}else{let o=this.getTokenFactory().create(a,w.INVALID_TYPE,t.text,w.DEFAULT_CHANNEL,-1,-1,t.line,t.column);this.context.addErrorNode(this.createErrorNode(this.context,o))}}}recoverInline(){return this.errorHandler.recoverInline(this)}},ig=class extends Map{static{E(this,"MultiMap")}map(r,e){let t=this.get(r);t||(t=new Array,this.set(r,t)),t.push(e)}getPairs(){let r=new Array;for(let e of this.keys()){let t=this.get(e)??[];for(let i of t)r.push([e,i])}return r}toString(){let r=[];return this.forEach((e,t)=>{r.push(`${t}=[${e.join(", ")}]`)}),`{${r.join(", ")}}`}},H8=class extends Error{static{E(this,"CannotInvokeStartRuleError")}constructor(r){super(),this.cause=r}},ng=class{static{E(this,"RuleTagToken")}label;ruleName;bypassTokenType;constructor(r,e,t){this.ruleName=r,this.bypassTokenType=e,this.label=t}get channel(){return w.DEFAULT_CHANNEL}get text(){return this.label!==void 0?"<"+this.label+":"+this.ruleName+">":"<"+this.ruleName+">"}get type(){return this.bypassTokenType}get line(){return 0}get column(){return-1}get tokenIndex(){return-1}get start(){return-1}get stop(){return-1}get tokenSource(){return null}get inputStream(){return null}toString(){return this.ruleName+":"+this.bypassTokenType}},B8=class extends Error{static{E(this,"StartRuleDoesNotConsumeFullPatternError")}},sg=class extends Wg{static{E(this,"TagChunk")}tag;label;constructor(...r){let e,t;if(r.length===1?t=r[0]:(e=r[0],t=r[1]),super(),!t)throw new Error("tag cannot be null or empty");this.label=e,this.tag=t}toString(){return this.label!==void 0?this.label+":"+this.tag:this.tag}},Hn=class extends Wg{static{E(this,"TextChunk")}text;constructor(r){super(),this.text=r}toString(){return"'"+this.text+"'"}},ag=class extends ku{static{E(this,"TokenTagToken")}tokenName;label;constructor(r,e,t){super({type:e,source:ku.EMPTY_SOURCE}),this.tokenName=r,this.label=t}get text(){return this.label!==void 0?"<"+this.label+":"+this.tokenName+">":"<"+this.tokenName+">"}toString(){return this.tokenName+":"+this.type}},_8=class{static{E(this,"ParseTreePatternMatcher")}start="<";stop=">";escape="\\";lexer;parser;constructor(r,e){this.lexer=r,this.parser=e}setDelimiters(r,e,t){if(r===null||r.length===0)throw new Error("start cannot be null or empty");if(e===null||e.length===0)throw new Error("stop cannot be null or empty");this.start=r,this.stop=e,this.escape=t}matches(...r){switch(r.length){case 2:{let[e,t]=r,i=new ig;return this.matchImpl(e,t.getPatternTree(),i)===null}case 3:{let[e,t,i]=r,n=this.compile(t,i);return this.matches(e,n)}default:throw new Error("Invalid number of arguments")}}match(...r){switch(r.length){case 2:{let[e,t]=r,i=new ig,n=this.matchImpl(e,t.getPatternTree(),i);return new U8(e,t,i,n)}case 3:{let[e,t,i]=r,n=this.compile(t,i);return this.match(e,n)}default:throw new Error("Invalid number of arguments")}}compile(r,e){let t=this.tokenize(r),i=new O8(t),n=new Bu(i),a=new F8(this.parser.grammarFileName,this.parser.vocabulary,this.parser.ruleNames,this.parser.getATNWithBypassAlts(),n);a.removeErrorListeners();let o=null;try{a.errorHandler=new k3,o=a.parse(e)}catch(l){throw l instanceof N3?l.cause:l instanceof c?l:l instanceof Error?new H8(l):l}if(n.LA(1)!==w.EOF)throw new B8;return new w8(this,r,e,o)}getLexer(){return this.lexer}getParser(){return this.parser}tokenize(r){let e=this.split(r),t=new Array;for(let i of e)if(i instanceof sg){let n=i,a=n.tag[0];if(a===a.toUpperCase()){let o=this.parser.getTokenType(n.tag);if(o===w.INVALID_TYPE)throw new Error("Unknown token "+n.tag+" in pattern: "+r);let l=new ag(n.tag,o,n.label);t.push(l)}else if(a===a.toLowerCase()){let o=this.parser.getRuleIndex(n.tag);if(o===-1)throw new Error("Unknown rule "+n.tag+" in pattern: "+r);let l=this.parser.getATNWithBypassAlts().ruleToTokenType[o];t.push(new ng(n.tag,l,n.label))}else throw new Error("invalid tag: "+n.tag+" in pattern: "+r)}else{let n=i,a=Wn.fromString(n.text);this.lexer.inputStream=a;let o=this.lexer.nextToken();for(;o.type!==w.EOF;)t.push(o),o=this.lexer.nextToken()}return t}split(r){let e=0,t=r.length,i=new Array,n=new Array,a=new Array;for(;e<t;)e===r.indexOf(this.escape+this.start,e)?e+=this.escape.length+this.start.length:e===r.indexOf(this.escape+this.stop,e)?e+=this.escape.length+this.stop.length:e===r.indexOf(this.start,e)?(n.push(e),e+=this.start.length):e===r.indexOf(this.stop,e)?(a.push(e),e+=this.stop.length):e++;if(n.length>a.length)throw new Error("unterminated tag in pattern: "+r);if(n.length<a.length)throw new Error("missing start tag in pattern: "+r);let o=n.length;for(let l=0;l<o;l++)if(n[l]>=a[l])throw new Error("tag delimiters out of order in pattern: "+r);if(o===0){let l=r.substring(0,t);i.push(new Hn(l))}if(o>0&&n[0]>0){let l=r.substring(0,n[0]);i.push(new Hn(l))}for(let l=0;l<o;l++){let h=r.substring(n[l]+this.start.length,a[l]),f=h,x,R=h.indexOf(":");if(R>=0&&(x=h.substring(0,R),f=h.substring(R+1,h.length)),i.push(new sg(x,f)),l+1<o){let S=r.substring(a[l]+this.stop.length,n[l+1]);i.push(new Hn(S))}}if(o>0){let l=a[o-1]+this.stop.length;if(l<t){let h=r.substring(l,t);i.push(new Hn(h))}}for(let l=0;l<i.length;l++){let h=i[l];if(h instanceof Hn){let f=h,x=f.text.replaceAll(this.escape,"");x.length<f.text.length&&(i[l]=new Hn(x))}}return i}matchImpl(r,e,t){if(r instanceof dt&&e instanceof dt){let i=r,n=e,a;if(i.getSymbol().type===n.getSymbol().type)if(n.getSymbol()instanceof ag){let o=n.getSymbol();t.map(o.tokenName,r),o.label!==void 0&&t.map(o.label,r)}else i.getText()===n.getText()||a||(a=i);else a||(a=i);return a}if(r instanceof u&&e instanceof u){let i,n=this.getRuleTagToken(e);if(n)return r.ruleIndex===e.ruleIndex?(t.map(n.ruleName,r),n.label&&t.map(n.label,r)):i||(i=r),i;if(r.getChildCount()!==e.getChildCount())return i||(i=r),i;let a=r.getChildCount();for(let o=0;o<a;o++){let l=this.matchImpl(r.getChild(o),e.getChild(o),t);if(l)return l}return i}return r}getRuleTagToken(r){if(r instanceof u&&r.getChildCount()===1&&r.getChild(0)instanceof dt){let e=r.getChild(0);if(e.getSymbol()instanceof ng)return e.getSymbol()}}},o9=class extends zn{static{E(this,"DiagnosticErrorListener")}exactOnly;constructor(r){super(),this.exactOnly=r??!0}reportAmbiguity=E((r,e,t,i,n,a,o)=>{if(this.exactOnly&&!n)return;let l=this.getDecisionDescription(r,e),h=this.getConflictingAlts(a,o),f=r.tokenStream?.getTextFromInterval(ye.of(t,i)),x=`reportAmbiguity d=${l}: ambigAlts=${h}, input='${f}'`;r.notifyErrorListeners(x,null,null)},"reportAmbiguity");reportAttemptingFullContext=E((r,e,t,i,n,a)=>{let o=this.getDecisionDescription(r,e),l=r.tokenStream?.getTextFromInterval(ye.of(t,i)),h=`reportAttemptingFullContext d=${o}, input='${l}'`;r.notifyErrorListeners(h,null,null)},"reportAttemptingFullContext");reportContextSensitivity=E((r,e,t,i,n,a)=>{let o=this.getDecisionDescription(r,e),l=r.tokenStream?.getTextFromInterval(ye.of(t,i)),h=`reportContextSensitivity d=${o}, input='${l}'`;r.notifyErrorListeners(h,null,null)},"reportContextSensitivity");getDecisionDescription=E((r,e)=>{let t=e.decision,i=e.atnStartState.ruleIndex,n=r.ruleNames;if(i<0||i>=n.length)return t.toString();let a=n[i];return a.length===0?t.toString():`${t} (${a})`},"getDecisionDescription");getConflictingAlts=E((r,e)=>{if(r)return r;let t=new Cr;for(let i=0;i<e.configs.length;i++)t.set(e.configs[i].alt);return t},"getConflictingAlts")},l9=class extends vr{static{E(this,"LexerInterpreter")}decisionToDFA;sharedContextCache=new Hi;#e;#t;#i;#r;#n;#s;constructor(r,e,t,i,n,a,o){if(super(o),a.grammarType!==ee.LEXER)throw new Error("IllegalArgumentException: The ATN must be a lexer ATN.");this.#e=r,this.#t=a,this.#i=t.slice(0),this.#r=i.slice(0),this.#n=n.slice(0),this.#s=e,this.decisionToDFA=a.decisionToState.map((l,h)=>new kr(l,h)),this.interpreter=new Gn(this,a,this.decisionToDFA,this.sharedContextCache)}get atn(){return this.#t}get grammarFileName(){return this.#e}get ruleNames(){return this.#i}get channelNames(){return this.#r}get modeNames(){return this.#n}get vocabulary(){return this.#s}get serializedATN(){throw new Error("The LexerInterpreter does not support the serializedATN property.")}},u9=class wi{static{E(this,"RuntimeMetaData")}static VERSION="4.13.1";static getRuntimeVersion(){return wi.VERSION}static checkVersion(e,t){let i=wi.VERSION,n=!1,a=!1;n=i!==e&&wi.getMajorMinorVersion(i)!==wi.getMajorMinorVersion(e),a=i!==t&&wi.getMajorMinorVersion(i)!==wi.getMajorMinorVersion(t),n&&console.error(`ANTLR Tool version ${e} used for code generation does not match the current runtime version ${i}`),a&&console.error(`ANTLR Runtime version ${t} used for parser compilation does not match the current runtime version ${i}`)}static getMajorMinorVersion(e){let t=e.indexOf("."),i=t>=0?e.indexOf(".",t+1):-1,n=e.indexOf("-"),a=e.length;return i>=0&&(a=Math.min(a,i)),n>=0&&(a=Math.min(a,n)),e.substring(0,a)}},c9=class Di{static{E(this,"TokenStreamRewriter")}static DEFAULT_PROGRAM_NAME="default";static PROGRAM_INIT_SIZE=100;static MIN_TOKEN_INDEX=0;tokens;programs=new Map;lastRewriteTokenIndexes;constructor(e){this.tokens=e}getTokenStream(){return this.tokens}insertAfter(e,t,i=Di.DEFAULT_PROGRAM_NAME){let n;typeof e=="number"?n=e:n=e.tokenIndex;let a=this.getProgram(i),o=new og(this.tokens,n,a.length,t);a.push(o)}insertBefore(e,t,i=Di.DEFAULT_PROGRAM_NAME){let n;typeof e=="number"?n=e:n=e.tokenIndex;let a=this.getProgram(i),o=new _n(this.tokens,n,a.length,t);a.push(o)}replaceSingle(e,t,i=Di.DEFAULT_PROGRAM_NAME){this.replace(e,e,t,i)}replace(e,t,i,n=Di.DEFAULT_PROGRAM_NAME){if(typeof e!="number"&&(e=e.tokenIndex),typeof t!="number"&&(t=t.tokenIndex),e>t||e<0||t<0||t>=this.tokens.size)throw new RangeError(`replace: range invalid: ${e}..${t}(size=${this.tokens.size})`);let a=this.getProgram(n),o=new Uu(this.tokens,e,t,a.length,i);a.push(o)}delete(e,t,i=Di.DEFAULT_PROGRAM_NAME){t==null&&(t=e),this.replace(e,t,null,i)}getProgram(e){let t=this.programs.get(e);return t==null&&(t=this.initializeProgram(e)),t}initializeProgram(e){let t=[];return this.programs.set(e,t),t}getText(e,t=Di.DEFAULT_PROGRAM_NAME){let i;e instanceof ye?i=e:i=new ye(0,this.tokens.size-1),typeof e=="string"&&(t=e);let n=this.programs.get(t),a=i.start,o=i.stop;if(o>this.tokens.size-1&&(o=this.tokens.size-1),a<0&&(a=0),n==null||n.length===0)return this.tokens.getTextFromInterval(new ye(a,o));let l=[],h=this.reduceToSingleOperationPerIndex(n),f=a;for(;f<=o&&f<this.tokens.size;){let x=h.get(f);h.delete(f);let R=this.tokens.get(f);x==null?(R.type!==w.EOF&&l.push(String(R.text)),f++):f=x.execute(l)}if(o===this.tokens.size-1)for(let x of h.values())x&&x.index>=this.tokens.size-1&&l.push(String(x.text));return l.join("")}reduceToSingleOperationPerIndex(e){for(let i=0;i<e.length;i++){let n=e[i];if(n==null||!(n instanceof Uu))continue;let a=n,o=this.getKindOfOps(e,_n,i);for(let h of o)h.index===a.index?(e[h.instructionIndex]=null,a.text=String(h.text)+(a.text!=null?a.text.toString():"")):h.index>a.index&&h.index<=a.lastIndex&&(e[h.instructionIndex]=null);let l=this.getKindOfOps(e,Uu,i);for(let h of l){if(h.index>=a.index&&h.lastIndex<=a.lastIndex){e[h.instructionIndex]=null;continue}let f=h.lastIndex<a.index||h.index>a.lastIndex;if(h.text==null&&a.text==null&&!f)e[h.instructionIndex]=null,a.index=Math.min(h.index,a.index),a.lastIndex=Math.max(h.lastIndex,a.lastIndex);else if(!f)throw new Error(`replace op boundaries of ${a} overlap with previous ${h}`)}}for(let i=0;i<e.length;i++){let n=e[i];if(n==null||!(n instanceof _n))continue;let a=n,o=this.getKindOfOps(e,_n,i);for(let h of o)h.index===a.index&&(h instanceof og?(a.text=this.catOpText(h.text,a.text),e[h.instructionIndex]=null):h instanceof _n&&(a.text=this.catOpText(a.text,h.text),e[h.instructionIndex]=null));let l=this.getKindOfOps(e,Uu,i);for(let h of l){if(a.index===h.index){h.text=this.catOpText(a.text,h.text),e[i]=null;continue}if(a.index>=h.index&&a.index<=h.lastIndex)throw new Error(`insert op ${a} within boundaries of previous ${h}`)}}let t=new Map;for(let i of e)if(i!=null){if(t.get(i.index)!=null)throw new Error("should only be one op per index");t.set(i.index,i)}return t}catOpText(e,t){let i="",n="";return e!=null&&(i=e.toString()),t!=null&&(n=t.toString()),i+n}getKindOfOps(e,t,i){return e.slice(0,i).filter(n=>n&&n instanceof t)}},zg=class{static{E(this,"RewriteOperation")}instructionIndex;index;text;tokens;constructor(r,e,t,i){this.tokens=r,this.instructionIndex=t,this.index=e,this.text=i===void 0?"":i}execute(r){return this.index}toString(){return"<RewriteOperation@"+this.tokens.get(this.index)+':"'+this.text+'">'}},_n=class extends zg{static{E(this,"InsertBeforeOp")}constructor(r,e,t,i){super(r,e,t,i)}execute(r){return this.text&&r.push(this.text.toString()),this.tokens.get(this.index).type!==w.EOF&&r.push(String(this.tokens.get(this.index).text)),this.index+1}toString(){return"<InsertBeforeOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},og=class extends _n{static{E(this,"InsertAfterOp")}constructor(r,e,t,i){super(r,e+1,t,i)}toString(){return"<InsertAfterOp@"+this.tokens.get(this.index)+':"'+this.text+'">'}},Uu=class extends zg{static{E(this,"ReplaceOp")}lastIndex;constructor(r,e,t,i,n){super(r,e,i,n),this.lastIndex=t}execute(r){return this.text&&r.push(this.text.toString()),this.lastIndex+1}toString(){return this.text==null?"<DeleteOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+">":"<ReplaceOp@"+this.tokens.get(this.index)+".."+this.tokens.get(this.lastIndex)+':"'+this.text+'">'}},h9=class{static{E(this,"UnbufferedTokenStream")}tokenSource;tokens;n;p=0;numMarkers=0;lastToken;lastTokenBufferStart;currentTokenIndex=0;constructor(r,e){this.tokenSource=r,e=e??256,this.tokens=new Array(e),this.n=0,this.fill(1)}get(r){let e=this.getBufferStartIndex();if(r<e||r>=e+this.n)throw new Error("get("+r+") outside buffer: "+e+".."+(e+this.n));return this.tokens[r-e]}LT(r){if(r===-1)return this.lastToken;this.sync(r);let e=this.p+r-1;if(e<0)throw new Error("LT("+r+") gives negative index");return e>=this.n?this.tokens[this.n-1]:this.tokens[e]}LA(r){return this.LT(r).type}getText(){return""}getTextFromContext(r){return this.getTextFromInterval(r.getSourceInterval())}getTextFromInterval(r){let e=this.getBufferStartIndex(),t=e+this.tokens.length-1,i=r.start,n=r.stop;if(i<e||n>t)throw new Error("interval "+r+" not in token buffer window: "+e+".."+t);let a=i-e,o=n-e,l="";for(let h=a;h<=o;h++){let f=this.tokens[h];l+=f.text}return l}getTextFromRange(r,e){return this.getTextFromInterval(ye.of(r.tokenIndex,e.tokenIndex))}consume(){if(this.LA(1)===w.EOF)throw new Error("cannot consume EOF");this.lastToken=this.tokens[this.p],this.p===this.n-1&&this.numMarkers===0&&(this.n=0,this.p=-1,this.lastTokenBufferStart=this.lastToken),this.p++,this.currentTokenIndex++,this.sync(1)}mark(){this.numMarkers===0&&(this.lastTokenBufferStart=this.lastToken);let r=-this.numMarkers-1;return this.numMarkers++,r}release(r){let e=-this.numMarkers;if(r!==e)throw new Error("release() called with an invalid marker.");this.numMarkers--,this.numMarkers===0&&(this.p>0&&(this.tokens.copyWithin(0,this.p,this.n),this.n=this.n-this.p,this.p=0),this.lastTokenBufferStart=this.lastToken)}get index(){return this.currentTokenIndex}seek(r){if(r===this.currentTokenIndex)return;r>this.currentTokenIndex&&(this.sync(r-this.currentTokenIndex),r=Math.min(r,this.getBufferStartIndex()+this.n-1));let e=this.getBufferStartIndex(),t=r-e;if(t<0)throw new Error("cannot seek to negative index "+r);if(t>=this.n)throw new Error("seek to index outside buffer: "+r+" not in "+e+".."+(e+this.n));this.p=t,this.currentTokenIndex=r,this.p===0?this.lastToken=this.lastTokenBufferStart:this.lastToken=this.tokens[this.p-1]}get size(){throw new Error("Unbuffered stream cannot know its size")}getSourceName(){return this.tokenSource.sourceName}setLine(r){this.tokenSource.line=r}setColumn(r){this.tokenSource.column=r}sync(r){let e=this.p+r-1-this.n+1;e>0&&this.fill(e)}fill(r){for(let e=0;e<r;e++){if(this.n>0&&this.tokens[this.n-1].type===w.EOF)return e;let t=this.tokenSource.nextToken();this.add(t)}return r}add(r){this.n>=this.tokens.length&&(this.tokens.length=this.tokens.length*2),jg(r)&&r.setTokenIndex(this.getBufferStartIndex()+this.n),this.tokens[this.n++]=r}getBufferStartIndex(){return this.currentTokenIndex-this.p}};var Vu=class r extends vr{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static WS=225;static channelNames=["DEFAULT_TOKEN_CHANNEL","HIDDEN"];static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","WS"];static modeNames=["DEFAULT_MODE"];static ruleNames=["ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","WS"];constructor(e){super(e),this.interpreter=new Gn(this,r._ATN,r.decisionsToDFA,new Hi)}get grammarFileName(){return"SysMLv2Lexer.g4"}get literalNames(){return r.literalNames}get symbolicNames(){return r.symbolicNames}get ruleNames(){return r.ruleNames}get serializedATN(){return r._serializedATN}get channelNames(){return r.channelNames}get modeNames(){return r.modeNames}static _serializedATN=[4,0,225,1950,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,153,1,153,1,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,178,1,178,1,178,1,179,1,179,1,179,1,180,1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,182,1,183,1,183,1,183,1,184,1,184,1,184,1,185,1,185,1,185,1,186,1,186,1,186,1,187,1,187,1,187,1,188,1,188,1,188,1,189,1,189,1,189,1,190,1,190,1,190,1,191,1,191,1,192,1,192,1,193,1,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,199,1,199,1,200,1,200,1,201,1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,205,1,205,1,206,1,206,1,207,1,207,1,208,1,208,1,209,1,209,1,210,1,210,1,211,1,211,1,212,1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,216,1,216,1,217,1,217,5,217,1850,8,217,10,217,12,217,1853,9,217,1,218,1,218,1,218,1,218,5,218,1859,8,218,10,218,12,218,1862,9,218,1,218,1,218,1,219,1,219,1,219,1,219,5,219,1870,8,219,10,219,12,219,1873,9,219,1,219,1,219,1,220,4,220,1878,8,220,11,220,12,220,1879,1,221,5,221,1883,8,221,10,221,12,221,1886,9,221,1,221,1,221,4,221,1890,8,221,11,221,12,221,1891,1,221,1,221,3,221,1896,8,221,1,221,4,221,1899,8,221,11,221,12,221,1900,3,221,1903,8,221,1,221,4,221,1906,8,221,11,221,12,221,1907,1,221,1,221,3,221,1912,8,221,1,221,4,221,1915,8,221,11,221,12,221,1916,3,221,1919,8,221,1,222,1,222,1,222,1,222,5,222,1925,8,222,10,222,12,222,1928,9,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,5,223,1937,8,223,10,223,12,223,1940,9,223,1,223,1,223,1,224,4,224,1945,8,224,11,224,12,224,1946,1,224,1,224,1,1926,0,225,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,1,0,9,3,0,65,90,95,95,97,122,4,0,48,57,65,90,95,95,97,122,2,0,39,39,92,92,2,0,34,34,92,92,1,0,48,57,2,0,69,69,101,101,2,0,43,43,45,45,2,0,10,10,13,13,3,0,9,10,13,13,32,32,1967,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,1,451,1,0,0,0,3,457,1,0,0,0,5,466,1,0,0,0,7,473,1,0,0,0,9,480,1,0,0,0,11,486,1,0,0,0,13,492,1,0,0,0,15,498,1,0,0,0,17,502,1,0,0,0,19,511,1,0,0,0,21,522,1,0,0,0,23,531,1,0,0,0,25,535,1,0,0,0,27,538,1,0,0,0,29,545,1,0,0,0,31,552,1,0,0,0,33,558,1,0,0,0,35,565,1,0,0,0,37,568,1,0,0,0,39,578,1,0,0,0,41,587,1,0,0,0,43,592,1,0,0,0,45,600,1,0,0,0,47,605,1,0,0,0,49,608,1,0,0,0,51,613,1,0,0,0,53,618,1,0,0,0,55,625,1,0,0,0,57,631,1,0,0,0,59,642,1,0,0,0,61,650,1,0,0,0,63,660,1,0,0,0,65,668,1,0,0,0,67,678,1,0,0,0,69,689,1,0,0,0,71,701,1,0,0,0,73,709,1,0,0,0,75,720,1,0,0,0,77,730,1,0,0,0,79,736,1,0,0,0,81,745,1,0,0,0,83,756,1,0,0,0,85,764,1,0,0,0,87,773,1,0,0,0,89,780,1,0,0,0,91,784,1,0,0,0,93,792,1,0,0,0,95,800,1,0,0,0,97,811,1,0,0,0,99,819,1,0,0,0,101,831,1,0,0,0,103,842,1,0,0,0,105,851,1,0,0,0,107,854,1,0,0,0,109,858,1,0,0,0,111,863,1,0,0,0,113,867,1,0,0,0,115,873,1,0,0,0,117,878,1,0,0,0,119,884,1,0,0,0,121,892,1,0,0,0,123,897,1,0,0,0,125,904,1,0,0,0,127,909,1,0,0,0,129,915,1,0,0,0,131,923,1,0,0,0,133,932,1,0,0,0,135,942,1,0,0,0,137,949,1,0,0,0,139,955,1,0,0,0,141,960,1,0,0,0,143,964,1,0,0,0,145,969,1,0,0,0,147,975,1,0,0,0,149,980,1,0,0,0,151,989,1,0,0,0,153,997,1,0,0,0,155,1e3,1,0,0,0,157,1008,1,0,0,0,159,1015,1,0,0,0,161,1018,1,0,0,0,163,1026,1,0,0,0,165,1037,1,0,0,0,167,1043,1,0,0,0,169,1055,1,0,0,0,171,1065,1,0,0,0,173,1076,1,0,0,0,175,1080,1,0,0,0,177,1088,1,0,0,0,179,1098,1,0,0,0,181,1105,1,0,0,0,183,1110,1,0,0,0,185,1115,1,0,0,0,187,1124,1,0,0,0,189,1132,1,0,0,0,191,1139,1,0,0,0,193,1144,1,0,0,0,195,1151,1,0,0,0,197,1157,1,0,0,0,199,1165,1,0,0,0,201,1170,1,0,0,0,203,1180,1,0,0,0,205,1189,1,0,0,0,207,1202,1,0,0,0,209,1212,1,0,0,0,211,1216,1,0,0,0,213,1226,1,0,0,0,215,1230,1,0,0,0,217,1235,1,0,0,0,219,1245,1,0,0,0,221,1256,1,0,0,0,223,1259,1,0,0,0,225,1262,1,0,0,0,227,1270,1,0,0,0,229,1274,1,0,0,0,231,1282,1,0,0,0,233,1291,1,0,0,0,235,1296,1,0,0,0,237,1304,1,0,0,0,239,1309,1,0,0,0,241,1317,1,0,0,0,243,1327,1,0,0,0,245,1335,1,0,0,0,247,1345,1,0,0,0,249,1352,1,0,0,0,251,1362,1,0,0,0,253,1375,1,0,0,0,255,1379,1,0,0,0,257,1390,1,0,0,0,259,1397,1,0,0,0,261,1407,1,0,0,0,263,1411,1,0,0,0,265,1419,1,0,0,0,267,1431,1,0,0,0,269,1438,1,0,0,0,271,1446,1,0,0,0,273,1451,1,0,0,0,275,1460,1,0,0,0,277,1475,1,0,0,0,279,1487,1,0,0,0,281,1499,1,0,0,0,283,1508,1,0,0,0,285,1514,1,0,0,0,287,1519,1,0,0,0,289,1526,1,0,0,0,291,1540,1,0,0,0,293,1548,1,0,0,0,295,1555,1,0,0,0,297,1563,1,0,0,0,299,1571,1,0,0,0,301,1582,1,0,0,0,303,1592,1,0,0,0,305,1597,1,0,0,0,307,1607,1,0,0,0,309,1610,1,0,0,0,311,1621,1,0,0,0,313,1626,1,0,0,0,315,1631,1,0,0,0,317,1637,1,0,0,0,319,1644,1,0,0,0,321,1651,1,0,0,0,323,1657,1,0,0,0,325,1661,1,0,0,0,327,1665,1,0,0,0,329,1673,1,0,0,0,331,1683,1,0,0,0,333,1696,1,0,0,0,335,1703,1,0,0,0,337,1707,1,0,0,0,339,1712,1,0,0,0,341,1722,1,0,0,0,343,1727,1,0,0,0,345,1733,1,0,0,0,347,1737,1,0,0,0,349,1741,1,0,0,0,351,1745,1,0,0,0,353,1749,1,0,0,0,355,1753,1,0,0,0,357,1756,1,0,0,0,359,1759,1,0,0,0,361,1762,1,0,0,0,363,1765,1,0,0,0,365,1768,1,0,0,0,367,1771,1,0,0,0,369,1774,1,0,0,0,371,1777,1,0,0,0,373,1780,1,0,0,0,375,1783,1,0,0,0,377,1786,1,0,0,0,379,1789,1,0,0,0,381,1792,1,0,0,0,383,1795,1,0,0,0,385,1797,1,0,0,0,387,1799,1,0,0,0,389,1801,1,0,0,0,391,1803,1,0,0,0,393,1805,1,0,0,0,395,1807,1,0,0,0,397,1809,1,0,0,0,399,1811,1,0,0,0,401,1813,1,0,0,0,403,1815,1,0,0,0,405,1817,1,0,0,0,407,1819,1,0,0,0,409,1821,1,0,0,0,411,1823,1,0,0,0,413,1825,1,0,0,0,415,1827,1,0,0,0,417,1829,1,0,0,0,419,1831,1,0,0,0,421,1833,1,0,0,0,423,1835,1,0,0,0,425,1837,1,0,0,0,427,1839,1,0,0,0,429,1841,1,0,0,0,431,1843,1,0,0,0,433,1845,1,0,0,0,435,1847,1,0,0,0,437,1854,1,0,0,0,439,1865,1,0,0,0,441,1877,1,0,0,0,443,1918,1,0,0,0,445,1920,1,0,0,0,447,1932,1,0,0,0,449,1944,1,0,0,0,451,452,5,97,0,0,452,453,5,98,0,0,453,454,5,111,0,0,454,455,5,117,0,0,455,456,5,116,0,0,456,2,1,0,0,0,457,458,5,97,0,0,458,459,5,98,0,0,459,460,5,115,0,0,460,461,5,116,0,0,461,462,5,114,0,0,462,463,5,97,0,0,463,464,5,99,0,0,464,465,5,116,0,0,465,4,1,0,0,0,466,467,5,97,0,0,467,468,5,99,0,0,468,469,5,99,0,0,469,470,5,101,0,0,470,471,5,112,0,0,471,472,5,116,0,0,472,6,1,0,0,0,473,474,5,97,0,0,474,475,5,99,0,0,475,476,5,116,0,0,476,477,5,105,0,0,477,478,5,111,0,0,478,479,5,110,0,0,479,8,1,0,0,0,480,481,5,97,0,0,481,482,5,99,0,0,482,483,5,116,0,0,483,484,5,111,0,0,484,485,5,114,0,0,485,10,1,0,0,0,486,487,5,97,0,0,487,488,5,102,0,0,488,489,5,116,0,0,489,490,5,101,0,0,490,491,5,114,0,0,491,12,1,0,0,0,492,493,5,97,0,0,493,494,5,108,0,0,494,495,5,105,0,0,495,496,5,97,0,0,496,497,5,115,0,0,497,14,1,0,0,0,498,499,5,97,0,0,499,500,5,108,0,0,500,501,5,108,0,0,501,16,1,0,0,0,502,503,5,97,0,0,503,504,5,108,0,0,504,505,5,108,0,0,505,506,5,111,0,0,506,507,5,99,0,0,507,508,5,97,0,0,508,509,5,116,0,0,509,510,5,101,0,0,510,18,1,0,0,0,511,512,5,97,0,0,512,513,5,108,0,0,513,514,5,108,0,0,514,515,5,111,0,0,515,516,5,99,0,0,516,517,5,97,0,0,517,518,5,116,0,0,518,519,5,105,0,0,519,520,5,111,0,0,520,521,5,110,0,0,521,20,1,0,0,0,522,523,5,97,0,0,523,524,5,110,0,0,524,525,5,97,0,0,525,526,5,108,0,0,526,527,5,121,0,0,527,528,5,115,0,0,528,529,5,105,0,0,529,530,5,115,0,0,530,22,1,0,0,0,531,532,5,97,0,0,532,533,5,110,0,0,533,534,5,100,0,0,534,24,1,0,0,0,535,536,5,97,0,0,536,537,5,115,0,0,537,26,1,0,0,0,538,539,5,97,0,0,539,540,5,115,0,0,540,541,5,115,0,0,541,542,5,101,0,0,542,543,5,114,0,0,543,544,5,116,0,0,544,28,1,0,0,0,545,546,5,97,0,0,546,547,5,115,0,0,547,548,5,115,0,0,548,549,5,105,0,0,549,550,5,103,0,0,550,551,5,110,0,0,551,30,1,0,0,0,552,553,5,97,0,0,553,554,5,115,0,0,554,555,5,115,0,0,555,556,5,111,0,0,556,557,5,99,0,0,557,32,1,0,0,0,558,559,5,97,0,0,559,560,5,115,0,0,560,561,5,115,0,0,561,562,5,117,0,0,562,563,5,109,0,0,563,564,5,101,0,0,564,34,1,0,0,0,565,566,5,97,0,0,566,567,5,116,0,0,567,36,1,0,0,0,568,569,5,97,0,0,569,570,5,116,0,0,570,571,5,116,0,0,571,572,5,114,0,0,572,573,5,105,0,0,573,574,5,98,0,0,574,575,5,117,0,0,575,576,5,116,0,0,576,577,5,101,0,0,577,38,1,0,0,0,578,579,5,98,0,0,579,580,5,101,0,0,580,581,5,104,0,0,581,582,5,97,0,0,582,583,5,118,0,0,583,584,5,105,0,0,584,585,5,111,0,0,585,586,5,114,0,0,586,40,1,0,0,0,587,588,5,98,0,0,588,589,5,105,0,0,589,590,5,110,0,0,590,591,5,100,0,0,591,42,1,0,0,0,592,593,5,98,0,0,593,594,5,105,0,0,594,595,5,110,0,0,595,596,5,100,0,0,596,597,5,105,0,0,597,598,5,110,0,0,598,599,5,103,0,0,599,44,1,0,0,0,600,601,5,98,0,0,601,602,5,111,0,0,602,603,5,111,0,0,603,604,5,108,0,0,604,46,1,0,0,0,605,606,5,98,0,0,606,607,5,121,0,0,607,48,1,0,0,0,608,609,5,99,0,0,609,610,5,97,0,0,610,611,5,108,0,0,611,612,5,99,0,0,612,50,1,0,0,0,613,614,5,99,0,0,614,615,5,97,0,0,615,616,5,115,0,0,616,617,5,101,0,0,617,52,1,0,0,0,618,619,5,99,0,0,619,620,5,104,0,0,620,621,5,97,0,0,621,622,5,105,0,0,622,623,5,110,0,0,623,624,5,115,0,0,624,54,1,0,0,0,625,626,5,99,0,0,626,627,5,108,0,0,627,628,5,97,0,0,628,629,5,115,0,0,629,630,5,115,0,0,630,56,1,0,0,0,631,632,5,99,0,0,632,633,5,108,0,0,633,634,5,97,0,0,634,635,5,115,0,0,635,636,5,115,0,0,636,637,5,105,0,0,637,638,5,102,0,0,638,639,5,105,0,0,639,640,5,101,0,0,640,641,5,114,0,0,641,58,1,0,0,0,642,643,5,99,0,0,643,644,5,111,0,0,644,645,5,109,0,0,645,646,5,109,0,0,646,647,5,101,0,0,647,648,5,110,0,0,648,649,5,116,0,0,649,60,1,0,0,0,650,651,5,99,0,0,651,652,5,111,0,0,652,653,5,109,0,0,653,654,5,112,0,0,654,655,5,111,0,0,655,656,5,115,0,0,656,657,5,105,0,0,657,658,5,116,0,0,658,659,5,101,0,0,659,62,1,0,0,0,660,661,5,99,0,0,661,662,5,111,0,0,662,663,5,110,0,0,663,664,5,99,0,0,664,665,5,101,0,0,665,666,5,114,0,0,666,667,5,110,0,0,667,64,1,0,0,0,668,669,5,99,0,0,669,670,5,111,0,0,670,671,5,110,0,0,671,672,5,106,0,0,672,673,5,117,0,0,673,674,5,103,0,0,674,675,5,97,0,0,675,676,5,116,0,0,676,677,5,101,0,0,677,66,1,0,0,0,678,679,5,99,0,0,679,680,5,111,0,0,680,681,5,110,0,0,681,682,5,106,0,0,682,683,5,117,0,0,683,684,5,103,0,0,684,685,5,97,0,0,685,686,5,116,0,0,686,687,5,101,0,0,687,688,5,115,0,0,688,68,1,0,0,0,689,690,5,99,0,0,690,691,5,111,0,0,691,692,5,110,0,0,692,693,5,106,0,0,693,694,5,117,0,0,694,695,5,103,0,0,695,696,5,97,0,0,696,697,5,116,0,0,697,698,5,105,0,0,698,699,5,111,0,0,699,700,5,110,0,0,700,70,1,0,0,0,701,702,5,99,0,0,702,703,5,111,0,0,703,704,5,110,0,0,704,705,5,110,0,0,705,706,5,101,0,0,706,707,5,99,0,0,707,708,5,116,0,0,708,72,1,0,0,0,709,710,5,99,0,0,710,711,5,111,0,0,711,712,5,110,0,0,712,713,5,110,0,0,713,714,5,101,0,0,714,715,5,99,0,0,715,716,5,116,0,0,716,717,5,105,0,0,717,718,5,111,0,0,718,719,5,110,0,0,719,74,1,0,0,0,720,721,5,99,0,0,721,722,5,111,0,0,722,723,5,110,0,0,723,724,5,110,0,0,724,725,5,101,0,0,725,726,5,99,0,0,726,727,5,116,0,0,727,728,5,111,0,0,728,729,5,114,0,0,729,76,1,0,0,0,730,731,5,99,0,0,731,732,5,111,0,0,732,733,5,110,0,0,733,734,5,115,0,0,734,735,5,116,0,0,735,78,1,0,0,0,736,737,5,99,0,0,737,738,5,111,0,0,738,739,5,110,0,0,739,740,5,115,0,0,740,741,5,116,0,0,741,742,5,97,0,0,742,743,5,110,0,0,743,744,5,116,0,0,744,80,1,0,0,0,745,746,5,99,0,0,746,747,5,111,0,0,747,748,5,110,0,0,748,749,5,115,0,0,749,750,5,116,0,0,750,751,5,114,0,0,751,752,5,97,0,0,752,753,5,105,0,0,753,754,5,110,0,0,754,755,5,116,0,0,755,82,1,0,0,0,756,757,5,99,0,0,757,758,5,114,0,0,758,759,5,111,0,0,759,760,5,115,0,0,760,761,5,115,0,0,761,762,5,101,0,0,762,763,5,115,0,0,763,84,1,0,0,0,764,765,5,100,0,0,765,766,5,97,0,0,766,767,5,116,0,0,767,768,5,97,0,0,768,769,5,116,0,0,769,770,5,121,0,0,770,771,5,112,0,0,771,772,5,101,0,0,772,86,1,0,0,0,773,774,5,100,0,0,774,775,5,101,0,0,775,776,5,99,0,0,776,777,5,105,0,0,777,778,5,100,0,0,778,779,5,101,0,0,779,88,1,0,0,0,780,781,5,100,0,0,781,782,5,101,0,0,782,783,5,102,0,0,783,90,1,0,0,0,784,785,5,100,0,0,785,786,5,101,0,0,786,787,5,102,0,0,787,788,5,97,0,0,788,789,5,117,0,0,789,790,5,108,0,0,790,791,5,116,0,0,791,92,1,0,0,0,792,793,5,100,0,0,793,794,5,101,0,0,794,795,5,102,0,0,795,796,5,105,0,0,796,797,5,110,0,0,797,798,5,101,0,0,798,799,5,100,0,0,799,94,1,0,0,0,800,801,5,100,0,0,801,802,5,101,0,0,802,803,5,112,0,0,803,804,5,101,0,0,804,805,5,110,0,0,805,806,5,100,0,0,806,807,5,101,0,0,807,808,5,110,0,0,808,809,5,99,0,0,809,810,5,121,0,0,810,96,1,0,0,0,811,812,5,100,0,0,812,813,5,101,0,0,813,814,5,114,0,0,814,815,5,105,0,0,815,816,5,118,0,0,816,817,5,101,0,0,817,818,5,100,0,0,818,98,1,0,0,0,819,820,5,100,0,0,820,821,5,105,0,0,821,822,5,102,0,0,822,823,5,102,0,0,823,824,5,101,0,0,824,825,5,114,0,0,825,826,5,101,0,0,826,827,5,110,0,0,827,828,5,99,0,0,828,829,5,101,0,0,829,830,5,115,0,0,830,100,1,0,0,0,831,832,5,100,0,0,832,833,5,105,0,0,833,834,5,115,0,0,834,835,5,106,0,0,835,836,5,111,0,0,836,837,5,105,0,0,837,838,5,110,0,0,838,839,5,105,0,0,839,840,5,110,0,0,840,841,5,103,0,0,841,102,1,0,0,0,842,843,5,100,0,0,843,844,5,105,0,0,844,845,5,115,0,0,845,846,5,106,0,0,846,847,5,111,0,0,847,848,5,105,0,0,848,849,5,110,0,0,849,850,5,116,0,0,850,104,1,0,0,0,851,852,5,100,0,0,852,853,5,111,0,0,853,106,1,0,0,0,854,855,5,100,0,0,855,856,5,111,0,0,856,857,5,99,0,0,857,108,1,0,0,0,858,859,5,101,0,0,859,860,5,108,0,0,860,861,5,115,0,0,861,862,5,101,0,0,862,110,1,0,0,0,863,864,5,101,0,0,864,865,5,110,0,0,865,866,5,100,0,0,866,112,1,0,0,0,867,868,5,101,0,0,868,869,5,110,0,0,869,870,5,116,0,0,870,871,5,114,0,0,871,872,5,121,0,0,872,114,1,0,0,0,873,874,5,101,0,0,874,875,5,110,0,0,875,876,5,117,0,0,876,877,5,109,0,0,877,116,1,0,0,0,878,879,5,101,0,0,879,880,5,118,0,0,880,881,5,101,0,0,881,882,5,110,0,0,882,883,5,116,0,0,883,118,1,0,0,0,884,885,5,101,0,0,885,886,5,120,0,0,886,887,5,104,0,0,887,888,5,105,0,0,888,889,5,98,0,0,889,890,5,105,0,0,890,891,5,116,0,0,891,120,1,0,0,0,892,893,5,101,0,0,893,894,5,120,0,0,894,895,5,105,0,0,895,896,5,116,0,0,896,122,1,0,0,0,897,898,5,101,0,0,898,899,5,120,0,0,899,900,5,112,0,0,900,901,5,111,0,0,901,902,5,115,0,0,902,903,5,101,0,0,903,124,1,0,0,0,904,905,5,101,0,0,905,906,5,120,0,0,906,907,5,112,0,0,907,908,5,114,0,0,908,126,1,0,0,0,909,910,5,102,0,0,910,911,5,97,0,0,911,912,5,108,0,0,912,913,5,115,0,0,913,914,5,101,0,0,914,128,1,0,0,0,915,916,5,102,0,0,916,917,5,101,0,0,917,918,5,97,0,0,918,919,5,116,0,0,919,920,5,117,0,0,920,921,5,114,0,0,921,922,5,101,0,0,922,130,1,0,0,0,923,924,5,102,0,0,924,925,5,101,0,0,925,926,5,97,0,0,926,927,5,116,0,0,927,928,5,117,0,0,928,929,5,114,0,0,929,930,5,101,0,0,930,931,5,100,0,0,931,132,1,0,0,0,932,933,5,102,0,0,933,934,5,101,0,0,934,935,5,97,0,0,935,936,5,116,0,0,936,937,5,117,0,0,937,938,5,114,0,0,938,939,5,105,0,0,939,940,5,110,0,0,940,941,5,103,0,0,941,134,1,0,0,0,942,943,5,102,0,0,943,944,5,105,0,0,944,945,5,108,0,0,945,946,5,116,0,0,946,947,5,101,0,0,947,948,5,114,0,0,948,136,1,0,0,0,949,950,5,102,0,0,950,951,5,105,0,0,951,952,5,114,0,0,952,953,5,115,0,0,953,954,5,116,0,0,954,138,1,0,0,0,955,956,5,102,0,0,956,957,5,108,0,0,957,958,5,111,0,0,958,959,5,119,0,0,959,140,1,0,0,0,960,961,5,102,0,0,961,962,5,111,0,0,962,963,5,114,0,0,963,142,1,0,0,0,964,965,5,102,0,0,965,966,5,111,0,0,966,967,5,114,0,0,967,968,5,107,0,0,968,144,1,0,0,0,969,970,5,102,0,0,970,971,5,114,0,0,971,972,5,97,0,0,972,973,5,109,0,0,973,974,5,101,0,0,974,146,1,0,0,0,975,976,5,102,0,0,976,977,5,114,0,0,977,978,5,111,0,0,978,979,5,109,0,0,979,148,1,0,0,0,980,981,5,102,0,0,981,982,5,117,0,0,982,983,5,110,0,0,983,984,5,99,0,0,984,985,5,116,0,0,985,986,5,105,0,0,986,987,5,111,0,0,987,988,5,110,0,0,988,150,1,0,0,0,989,990,5,104,0,0,990,991,5,97,0,0,991,992,5,115,0,0,992,993,5,116,0,0,993,994,5,121,0,0,994,995,5,112,0,0,995,996,5,101,0,0,996,152,1,0,0,0,997,998,5,105,0,0,998,999,5,102,0,0,999,154,1,0,0,0,1e3,1001,5,105,0,0,1001,1002,5,109,0,0,1002,1003,5,112,0,0,1003,1004,5,108,0,0,1004,1005,5,105,0,0,1005,1006,5,101,0,0,1006,1007,5,115,0,0,1007,156,1,0,0,0,1008,1009,5,105,0,0,1009,1010,5,109,0,0,1010,1011,5,112,0,0,1011,1012,5,111,0,0,1012,1013,5,114,0,0,1013,1014,5,116,0,0,1014,158,1,0,0,0,1015,1016,5,105,0,0,1016,1017,5,110,0,0,1017,160,1,0,0,0,1018,1019,5,105,0,0,1019,1020,5,110,0,0,1020,1021,5,99,0,0,1021,1022,5,108,0,0,1022,1023,5,117,0,0,1023,1024,5,100,0,0,1024,1025,5,101,0,0,1025,162,1,0,0,0,1026,1027,5,105,0,0,1027,1028,5,110,0,0,1028,1029,5,100,0,0,1029,1030,5,105,0,0,1030,1031,5,118,0,0,1031,1032,5,105,0,0,1032,1033,5,100,0,0,1033,1034,5,117,0,0,1034,1035,5,97,0,0,1035,1036,5,108,0,0,1036,164,1,0,0,0,1037,1038,5,105,0,0,1038,1039,5,110,0,0,1039,1040,5,111,0,0,1040,1041,5,117,0,0,1041,1042,5,116,0,0,1042,166,1,0,0,0,1043,1044,5,105,0,0,1044,1045,5,110,0,0,1045,1046,5,116,0,0,1046,1047,5,101,0,0,1047,1048,5,114,0,0,1048,1049,5,97,0,0,1049,1050,5,99,0,0,1050,1051,5,116,0,0,1051,1052,5,105,0,0,1052,1053,5,111,0,0,1053,1054,5,110,0,0,1054,168,1,0,0,0,1055,1056,5,105,0,0,1056,1057,5,110,0,0,1057,1058,5,116,0,0,1058,1059,5,101,0,0,1059,1060,5,114,0,0,1060,1061,5,102,0,0,1061,1062,5,97,0,0,1062,1063,5,99,0,0,1063,1064,5,101,0,0,1064,170,1,0,0,0,1065,1066,5,105,0,0,1066,1067,5,110,0,0,1067,1068,5,116,0,0,1068,1069,5,101,0,0,1069,1070,5,114,0,0,1070,1071,5,115,0,0,1071,1072,5,101,0,0,1072,1073,5,99,0,0,1073,1074,5,116,0,0,1074,1075,5,115,0,0,1075,172,1,0,0,0,1076,1077,5,105,0,0,1077,1078,5,110,0,0,1078,1079,5,118,0,0,1079,174,1,0,0,0,1080,1081,5,105,0,0,1081,1082,5,110,0,0,1082,1083,5,118,0,0,1083,1084,5,101,0,0,1084,1085,5,114,0,0,1085,1086,5,115,0,0,1086,1087,5,101,0,0,1087,176,1,0,0,0,1088,1089,5,105,0,0,1089,1090,5,110,0,0,1090,1091,5,118,0,0,1091,1092,5,101,0,0,1092,1093,5,114,0,0,1093,1094,5,116,0,0,1094,1095,5,105,0,0,1095,1096,5,110,0,0,1096,1097,5,103,0,0,1097,178,1,0,0,0,1098,1099,5,105,0,0,1099,1100,5,115,0,0,1100,1101,5,116,0,0,1101,1102,5,121,0,0,1102,1103,5,112,0,0,1103,1104,5,101,0,0,1104,180,1,0,0,0,1105,1106,5,105,0,0,1106,1107,5,116,0,0,1107,1108,5,101,0,0,1108,1109,5,109,0,0,1109,182,1,0,0,0,1110,1111,5,106,0,0,1111,1112,5,111,0,0,1112,1113,5,105,0,0,1113,1114,5,110,0,0,1114,184,1,0,0,0,1115,1116,5,108,0,0,1116,1117,5,97,0,0,1117,1118,5,110,0,0,1118,1119,5,103,0,0,1119,1120,5,117,0,0,1120,1121,5,97,0,0,1121,1122,5,103,0,0,1122,1123,5,101,0,0,1123,186,1,0,0,0,1124,1125,5,108,0,0,1125,1126,5,105,0,0,1126,1127,5,98,0,0,1127,1128,5,114,0,0,1128,1129,5,97,0,0,1129,1130,5,114,0,0,1130,1131,5,121,0,0,1131,188,1,0,0,0,1132,1133,5,108,0,0,1133,1134,5,111,0,0,1134,1135,5,99,0,0,1135,1136,5,97,0,0,1136,1137,5,108,0,0,1137,1138,5,101,0,0,1138,190,1,0,0,0,1139,1140,5,108,0,0,1140,1141,5,111,0,0,1141,1142,5,111,0,0,1142,1143,5,112,0,0,1143,192,1,0,0,0,1144,1145,5,109,0,0,1145,1146,5,101,0,0,1146,1147,5,109,0,0,1147,1148,5,98,0,0,1148,1149,5,101,0,0,1149,1150,5,114,0,0,1150,194,1,0,0,0,1151,1152,5,109,0,0,1152,1153,5,101,0,0,1153,1154,5,114,0,0,1154,1155,5,103,0,0,1155,1156,5,101,0,0,1156,196,1,0,0,0,1157,1158,5,109,0,0,1158,1159,5,101,0,0,1159,1160,5,115,0,0,1160,1161,5,115,0,0,1161,1162,5,97,0,0,1162,1163,5,103,0,0,1163,1164,5,101,0,0,1164,198,1,0,0,0,1165,1166,5,109,0,0,1166,1167,5,101,0,0,1167,1168,5,116,0,0,1168,1169,5,97,0,0,1169,200,1,0,0,0,1170,1171,5,109,0,0,1171,1172,5,101,0,0,1172,1173,5,116,0,0,1173,1174,5,97,0,0,1174,1175,5,99,0,0,1175,1176,5,108,0,0,1176,1177,5,97,0,0,1177,1178,5,115,0,0,1178,1179,5,115,0,0,1179,202,1,0,0,0,1180,1181,5,109,0,0,1181,1182,5,101,0,0,1182,1183,5,116,0,0,1183,1184,5,97,0,0,1184,1185,5,100,0,0,1185,1186,5,97,0,0,1186,1187,5,116,0,0,1187,1188,5,97,0,0,1188,204,1,0,0,0,1189,1190,5,109,0,0,1190,1191,5,117,0,0,1191,1192,5,108,0,0,1192,1193,5,116,0,0,1193,1194,5,105,0,0,1194,1195,5,112,0,0,1195,1196,5,108,0,0,1196,1197,5,105,0,0,1197,1198,5,99,0,0,1198,1199,5,105,0,0,1199,1200,5,116,0,0,1200,1201,5,121,0,0,1201,206,1,0,0,0,1202,1203,5,110,0,0,1203,1204,5,97,0,0,1204,1205,5,109,0,0,1205,1206,5,101,0,0,1206,1207,5,115,0,0,1207,1208,5,112,0,0,1208,1209,5,97,0,0,1209,1210,5,99,0,0,1210,1211,5,101,0,0,1211,208,1,0,0,0,1212,1213,5,110,0,0,1213,1214,5,101,0,0,1214,1215,5,119,0,0,1215,210,1,0,0,0,1216,1217,5,110,0,0,1217,1218,5,111,0,0,1218,1219,5,110,0,0,1219,1220,5,117,0,0,1220,1221,5,110,0,0,1221,1222,5,105,0,0,1222,1223,5,113,0,0,1223,1224,5,117,0,0,1224,1225,5,101,0,0,1225,212,1,0,0,0,1226,1227,5,110,0,0,1227,1228,5,111,0,0,1228,1229,5,116,0,0,1229,214,1,0,0,0,1230,1231,5,110,0,0,1231,1232,5,117,0,0,1232,1233,5,108,0,0,1233,1234,5,108,0,0,1234,216,1,0,0,0,1235,1236,5,111,0,0,1236,1237,5,98,0,0,1237,1238,5,106,0,0,1238,1239,5,101,0,0,1239,1240,5,99,0,0,1240,1241,5,116,0,0,1241,1242,5,105,0,0,1242,1243,5,118,0,0,1243,1244,5,101,0,0,1244,218,1,0,0,0,1245,1246,5,111,0,0,1246,1247,5,99,0,0,1247,1248,5,99,0,0,1248,1249,5,117,0,0,1249,1250,5,114,0,0,1250,1251,5,114,0,0,1251,1252,5,101,0,0,1252,1253,5,110,0,0,1253,1254,5,99,0,0,1254,1255,5,101,0,0,1255,220,1,0,0,0,1256,1257,5,111,0,0,1257,1258,5,102,0,0,1258,222,1,0,0,0,1259,1260,5,111,0,0,1260,1261,5,114,0,0,1261,224,1,0,0,0,1262,1263,5,111,0,0,1263,1264,5,114,0,0,1264,1265,5,100,0,0,1265,1266,5,101,0,0,1266,1267,5,114,0,0,1267,1268,5,101,0,0,1268,1269,5,100,0,0,1269,226,1,0,0,0,1270,1271,5,111,0,0,1271,1272,5,117,0,0,1272,1273,5,116,0,0,1273,228,1,0,0,0,1274,1275,5,112,0,0,1275,1276,5,97,0,0,1276,1277,5,99,0,0,1277,1278,5,107,0,0,1278,1279,5,97,0,0,1279,1280,5,103,0,0,1280,1281,5,101,0,0,1281,230,1,0,0,0,1282,1283,5,112,0,0,1283,1284,5,97,0,0,1284,1285,5,114,0,0,1285,1286,5,97,0,0,1286,1287,5,108,0,0,1287,1288,5,108,0,0,1288,1289,5,101,0,0,1289,1290,5,108,0,0,1290,232,1,0,0,0,1291,1292,5,112,0,0,1292,1293,5,97,0,0,1293,1294,5,114,0,0,1294,1295,5,116,0,0,1295,234,1,0,0,0,1296,1297,5,112,0,0,1297,1298,5,101,0,0,1298,1299,5,114,0,0,1299,1300,5,102,0,0,1300,1301,5,111,0,0,1301,1302,5,114,0,0,1302,1303,5,109,0,0,1303,236,1,0,0,0,1304,1305,5,112,0,0,1305,1306,5,111,0,0,1306,1307,5,114,0,0,1307,1308,5,116,0,0,1308,238,1,0,0,0,1309,1310,5,112,0,0,1310,1311,5,111,0,0,1311,1312,5,114,0,0,1312,1313,5,116,0,0,1313,1314,5,105,0,0,1314,1315,5,111,0,0,1315,1316,5,110,0,0,1316,240,1,0,0,0,1317,1318,5,112,0,0,1318,1319,5,114,0,0,1319,1320,5,101,0,0,1320,1321,5,100,0,0,1321,1322,5,105,0,0,1322,1323,5,99,0,0,1323,1324,5,97,0,0,1324,1325,5,116,0,0,1325,1326,5,101,0,0,1326,242,1,0,0,0,1327,1328,5,112,0,0,1328,1329,5,114,0,0,1329,1330,5,105,0,0,1330,1331,5,118,0,0,1331,1332,5,97,0,0,1332,1333,5,116,0,0,1333,1334,5,101,0,0,1334,244,1,0,0,0,1335,1336,5,112,0,0,1336,1337,5,114,0,0,1337,1338,5,111,0,0,1338,1339,5,116,0,0,1339,1340,5,101,0,0,1340,1341,5,99,0,0,1341,1342,5,116,0,0,1342,1343,5,101,0,0,1343,1344,5,100,0,0,1344,246,1,0,0,0,1345,1346,5,112,0,0,1346,1347,5,117,0,0,1347,1348,5,98,0,0,1348,1349,5,108,0,0,1349,1350,5,105,0,0,1350,1351,5,99,0,0,1351,248,1,0,0,0,1352,1353,5,114,0,0,1353,1354,5,101,0,0,1354,1355,5,100,0,0,1355,1356,5,101,0,0,1356,1357,5,102,0,0,1357,1358,5,105,0,0,1358,1359,5,110,0,0,1359,1360,5,101,0,0,1360,1361,5,115,0,0,1361,250,1,0,0,0,1362,1363,5,114,0,0,1363,1364,5,101,0,0,1364,1365,5,100,0,0,1365,1366,5,101,0,0,1366,1367,5,102,0,0,1367,1368,5,105,0,0,1368,1369,5,110,0,0,1369,1370,5,105,0,0,1370,1371,5,116,0,0,1371,1372,5,105,0,0,1372,1373,5,111,0,0,1373,1374,5,110,0,0,1374,252,1,0,0,0,1375,1376,5,114,0,0,1376,1377,5,101,0,0,1377,1378,5,102,0,0,1378,254,1,0,0,0,1379,1380,5,114,0,0,1380,1381,5,101,0,0,1381,1382,5,102,0,0,1382,1383,5,101,0,0,1383,1384,5,114,0,0,1384,1385,5,101,0,0,1385,1386,5,110,0,0,1386,1387,5,99,0,0,1387,1388,5,101,0,0,1388,1389,5,115,0,0,1389,256,1,0,0,0,1390,1391,5,114,0,0,1391,1392,5,101,0,0,1392,1393,5,110,0,0,1393,1394,5,100,0,0,1394,1395,5,101,0,0,1395,1396,5,114,0,0,1396,258,1,0,0,0,1397,1398,5,114,0,0,1398,1399,5,101,0,0,1399,1400,5,110,0,0,1400,1401,5,100,0,0,1401,1402,5,101,0,0,1402,1403,5,114,0,0,1403,1404,5,105,0,0,1404,1405,5,110,0,0,1405,1406,5,103,0,0,1406,260,1,0,0,0,1407,1408,5,114,0,0,1408,1409,5,101,0,0,1409,1410,5,112,0,0,1410,262,1,0,0,0,1411,1412,5,114,0,0,1412,1413,5,101,0,0,1413,1414,5,113,0,0,1414,1415,5,117,0,0,1415,1416,5,105,0,0,1416,1417,5,114,0,0,1417,1418,5,101,0,0,1418,264,1,0,0,0,1419,1420,5,114,0,0,1420,1421,5,101,0,0,1421,1422,5,113,0,0,1422,1423,5,117,0,0,1423,1424,5,105,0,0,1424,1425,5,114,0,0,1425,1426,5,101,0,0,1426,1427,5,109,0,0,1427,1428,5,101,0,0,1428,1429,5,110,0,0,1429,1430,5,116,0,0,1430,266,1,0,0,0,1431,1432,5,114,0,0,1432,1433,5,101,0,0,1433,1434,5,116,0,0,1434,1435,5,117,0,0,1435,1436,5,114,0,0,1436,1437,5,110,0,0,1437,268,1,0,0,0,1438,1439,5,115,0,0,1439,1440,5,97,0,0,1440,1441,5,116,0,0,1441,1442,5,105,0,0,1442,1443,5,115,0,0,1443,1444,5,102,0,0,1444,1445,5,121,0,0,1445,270,1,0,0,0,1446,1447,5,115,0,0,1447,1448,5,101,0,0,1448,1449,5,110,0,0,1449,1450,5,100,0,0,1450,272,1,0,0,0,1451,1452,5,115,0,0,1452,1453,5,110,0,0,1453,1454,5,97,0,0,1454,1455,5,112,0,0,1455,1456,5,115,0,0,1456,1457,5,104,0,0,1457,1458,5,111,0,0,1458,1459,5,116,0,0,1459,274,1,0,0,0,1460,1461,5,115,0,0,1461,1462,5,112,0,0,1462,1463,5,101,0,0,1463,1464,5,99,0,0,1464,1465,5,105,0,0,1465,1466,5,97,0,0,1466,1467,5,108,0,0,1467,1468,5,105,0,0,1468,1469,5,122,0,0,1469,1470,5,97,0,0,1470,1471,5,116,0,0,1471,1472,5,105,0,0,1472,1473,5,111,0,0,1473,1474,5,110,0,0,1474,276,1,0,0,0,1475,1476,5,115,0,0,1476,1477,5,112,0,0,1477,1478,5,101,0,0,1478,1479,5,99,0,0,1479,1480,5,105,0,0,1480,1481,5,97,0,0,1481,1482,5,108,0,0,1482,1483,5,105,0,0,1483,1484,5,122,0,0,1484,1485,5,101,0,0,1485,1486,5,115,0,0,1486,278,1,0,0,0,1487,1488,5,115,0,0,1488,1489,5,116,0,0,1489,1490,5,97,0,0,1490,1491,5,107,0,0,1491,1492,5,101,0,0,1492,1493,5,104,0,0,1493,1494,5,111,0,0,1494,1495,5,108,0,0,1495,1496,5,100,0,0,1496,1497,5,101,0,0,1497,1498,5,114,0,0,1498,280,1,0,0,0,1499,1500,5,115,0,0,1500,1501,5,116,0,0,1501,1502,5,97,0,0,1502,1503,5,110,0,0,1503,1504,5,100,0,0,1504,1505,5,97,0,0,1505,1506,5,114,0,0,1506,1507,5,100,0,0,1507,282,1,0,0,0,1508,1509,5,115,0,0,1509,1510,5,116,0,0,1510,1511,5,97,0,0,1511,1512,5,116,0,0,1512,1513,5,101,0,0,1513,284,1,0,0,0,1514,1515,5,115,0,0,1515,1516,5,116,0,0,1516,1517,5,101,0,0,1517,1518,5,112,0,0,1518,286,1,0,0,0,1519,1520,5,115,0,0,1520,1521,5,116,0,0,1521,1522,5,114,0,0,1522,1523,5,117,0,0,1523,1524,5,99,0,0,1524,1525,5,116,0,0,1525,288,1,0,0,0,1526,1527,5,115,0,0,1527,1528,5,117,0,0,1528,1529,5,98,0,0,1529,1530,5,99,0,0,1530,1531,5,108,0,0,1531,1532,5,97,0,0,1532,1533,5,115,0,0,1533,1534,5,115,0,0,1534,1535,5,105,0,0,1535,1536,5,102,0,0,1536,1537,5,105,0,0,1537,1538,5,101,0,0,1538,1539,5,114,0,0,1539,290,1,0,0,0,1540,1541,5,115,0,0,1541,1542,5,117,0,0,1542,1543,5,98,0,0,1543,1544,5,106,0,0,1544,1545,5,101,0,0,1545,1546,5,99,0,0,1546,1547,5,116,0,0,1547,292,1,0,0,0,1548,1549,5,115,0,0,1549,1550,5,117,0,0,1550,1551,5,98,0,0,1551,1552,5,115,0,0,1552,1553,5,101,0,0,1553,1554,5,116,0,0,1554,294,1,0,0,0,1555,1556,5,115,0,0,1556,1557,5,117,0,0,1557,1558,5,98,0,0,1558,1559,5,115,0,0,1559,1560,5,101,0,0,1560,1561,5,116,0,0,1561,1562,5,115,0,0,1562,296,1,0,0,0,1563,1564,5,115,0,0,1564,1565,5,117,0,0,1565,1566,5,98,0,0,1566,1567,5,116,0,0,1567,1568,5,121,0,0,1568,1569,5,112,0,0,1569,1570,5,101,0,0,1570,298,1,0,0,0,1571,1572,5,115,0,0,1572,1573,5,117,0,0,1573,1574,5,99,0,0,1574,1575,5,99,0,0,1575,1576,5,101,0,0,1576,1577,5,115,0,0,1577,1578,5,115,0,0,1578,1579,5,105,0,0,1579,1580,5,111,0,0,1580,1581,5,110,0,0,1581,300,1,0,0,0,1582,1583,5,116,0,0,1583,1584,5,101,0,0,1584,1585,5,114,0,0,1585,1586,5,109,0,0,1586,1587,5,105,0,0,1587,1588,5,110,0,0,1588,1589,5,97,0,0,1589,1590,5,116,0,0,1590,1591,5,101,0,0,1591,302,1,0,0,0,1592,1593,5,116,0,0,1593,1594,5,104,0,0,1594,1595,5,101,0,0,1595,1596,5,110,0,0,1596,304,1,0,0,0,1597,1598,5,116,0,0,1598,1599,5,105,0,0,1599,1600,5,109,0,0,1600,1601,5,101,0,0,1601,1602,5,115,0,0,1602,1603,5,108,0,0,1603,1604,5,105,0,0,1604,1605,5,99,0,0,1605,1606,5,101,0,0,1606,306,1,0,0,0,1607,1608,5,116,0,0,1608,1609,5,111,0,0,1609,308,1,0,0,0,1610,1611,5,116,0,0,1611,1612,5,114,0,0,1612,1613,5,97,0,0,1613,1614,5,110,0,0,1614,1615,5,115,0,0,1615,1616,5,105,0,0,1616,1617,5,116,0,0,1617,1618,5,105,0,0,1618,1619,5,111,0,0,1619,1620,5,110,0,0,1620,310,1,0,0,0,1621,1622,5,116,0,0,1622,1623,5,114,0,0,1623,1624,5,117,0,0,1624,1625,5,101,0,0,1625,312,1,0,0,0,1626,1627,5,116,0,0,1627,1628,5,121,0,0,1628,1629,5,112,0,0,1629,1630,5,101,0,0,1630,314,1,0,0,0,1631,1632,5,116,0,0,1632,1633,5,121,0,0,1633,1634,5,112,0,0,1634,1635,5,101,0,0,1635,1636,5,100,0,0,1636,316,1,0,0,0,1637,1638,5,116,0,0,1638,1639,5,121,0,0,1639,1640,5,112,0,0,1640,1641,5,105,0,0,1641,1642,5,110,0,0,1642,1643,5,103,0,0,1643,318,1,0,0,0,1644,1645,5,117,0,0,1645,1646,5,110,0,0,1646,1647,5,105,0,0,1647,1648,5,111,0,0,1648,1649,5,110,0,0,1649,1650,5,115,0,0,1650,320,1,0,0,0,1651,1652,5,117,0,0,1652,1653,5,110,0,0,1653,1654,5,116,0,0,1654,1655,5,105,0,0,1655,1656,5,108,0,0,1656,322,1,0,0,0,1657,1658,5,117,0,0,1658,1659,5,115,0,0,1659,1660,5,101,0,0,1660,324,1,0,0,0,1661,1662,5,118,0,0,1662,1663,5,97,0,0,1663,1664,5,114,0,0,1664,326,1,0,0,0,1665,1666,5,118,0,0,1666,1667,5,97,0,0,1667,1668,5,114,0,0,1668,1669,5,105,0,0,1669,1670,5,97,0,0,1670,1671,5,110,0,0,1671,1672,5,116,0,0,1672,328,1,0,0,0,1673,1674,5,118,0,0,1674,1675,5,97,0,0,1675,1676,5,114,0,0,1676,1677,5,105,0,0,1677,1678,5,97,0,0,1678,1679,5,116,0,0,1679,1680,5,105,0,0,1680,1681,5,111,0,0,1681,1682,5,110,0,0,1682,330,1,0,0,0,1683,1684,5,118,0,0,1684,1685,5,101,0,0,1685,1686,5,114,0,0,1686,1687,5,105,0,0,1687,1688,5,102,0,0,1688,1689,5,105,0,0,1689,1690,5,99,0,0,1690,1691,5,97,0,0,1691,1692,5,116,0,0,1692,1693,5,105,0,0,1693,1694,5,111,0,0,1694,1695,5,110,0,0,1695,332,1,0,0,0,1696,1697,5,118,0,0,1697,1698,5,101,0,0,1698,1699,5,114,0,0,1699,1700,5,105,0,0,1700,1701,5,102,0,0,1701,1702,5,121,0,0,1702,334,1,0,0,0,1703,1704,5,118,0,0,1704,1705,5,105,0,0,1705,1706,5,97,0,0,1706,336,1,0,0,0,1707,1708,5,118,0,0,1708,1709,5,105,0,0,1709,1710,5,101,0,0,1710,1711,5,119,0,0,1711,338,1,0,0,0,1712,1713,5,118,0,0,1713,1714,5,105,0,0,1714,1715,5,101,0,0,1715,1716,5,119,0,0,1716,1717,5,112,0,0,1717,1718,5,111,0,0,1718,1719,5,105,0,0,1719,1720,5,110,0,0,1720,1721,5,116,0,0,1721,340,1,0,0,0,1722,1723,5,119,0,0,1723,1724,5,104,0,0,1724,1725,5,101,0,0,1725,1726,5,110,0,0,1726,342,1,0,0,0,1727,1728,5,119,0,0,1728,1729,5,104,0,0,1729,1730,5,105,0,0,1730,1731,5,108,0,0,1731,1732,5,101,0,0,1732,344,1,0,0,0,1733,1734,5,120,0,0,1734,1735,5,111,0,0,1735,1736,5,114,0,0,1736,346,1,0,0,0,1737,1738,5,33,0,0,1738,1739,5,61,0,0,1739,1740,5,61,0,0,1740,348,1,0,0,0,1741,1742,5,58,0,0,1742,1743,5,58,0,0,1743,1744,5,62,0,0,1744,350,1,0,0,0,1745,1746,5,58,0,0,1746,1747,5,62,0,0,1747,1748,5,62,0,0,1748,352,1,0,0,0,1749,1750,5,61,0,0,1750,1751,5,61,0,0,1751,1752,5,61,0,0,1752,354,1,0,0,0,1753,1754,5,33,0,0,1754,1755,5,61,0,0,1755,356,1,0,0,0,1756,1757,5,42,0,0,1757,1758,5,42,0,0,1758,358,1,0,0,0,1759,1760,5,45,0,0,1760,1761,5,62,0,0,1761,360,1,0,0,0,1762,1763,5,46,0,0,1763,1764,5,46,0,0,1764,362,1,0,0,0,1765,1766,5,46,0,0,1766,1767,5,63,0,0,1767,364,1,0,0,0,1768,1769,5,58,0,0,1769,1770,5,58,0,0,1770,366,1,0,0,0,1771,1772,5,58,0,0,1772,1773,5,61,0,0,1773,368,1,0,0,0,1774,1775,5,58,0,0,1775,1776,5,62,0,0,1776,370,1,0,0,0,1777,1778,5,60,0,0,1778,1779,5,61,0,0,1779,372,1,0,0,0,1780,1781,5,61,0,0,1781,1782,5,61,0,0,1782,374,1,0,0,0,1783,1784,5,61,0,0,1784,1785,5,62,0,0,1785,376,1,0,0,0,1786,1787,5,62,0,0,1787,1788,5,61,0,0,1788,378,1,0,0,0,1789,1790,5,63,0,0,1790,1791,5,63,0,0,1791,380,1,0,0,0,1792,1793,5,64,0,0,1793,1794,5,64,0,0,1794,382,1,0,0,0,1795,1796,5,35,0,0,1796,384,1,0,0,0,1797,1798,5,36,0,0,1798,386,1,0,0,0,1799,1800,5,37,0,0,1800,388,1,0,0,0,1801,1802,5,38,0,0,1802,390,1,0,0,0,1803,1804,5,40,0,0,1804,392,1,0,0,0,1805,1806,5,41,0,0,1806,394,1,0,0,0,1807,1808,5,42,0,0,1808,396,1,0,0,0,1809,1810,5,43,0,0,1810,398,1,0,0,0,1811,1812,5,44,0,0,1812,400,1,0,0,0,1813,1814,5,45,0,0,1814,402,1,0,0,0,1815,1816,5,46,0,0,1816,404,1,0,0,0,1817,1818,5,47,0,0,1818,406,1,0,0,0,1819,1820,5,58,0,0,1820,408,1,0,0,0,1821,1822,5,59,0,0,1822,410,1,0,0,0,1823,1824,5,60,0,0,1824,412,1,0,0,0,1825,1826,5,61,0,0,1826,414,1,0,0,0,1827,1828,5,62,0,0,1828,416,1,0,0,0,1829,1830,5,63,0,0,1830,418,1,0,0,0,1831,1832,5,64,0,0,1832,420,1,0,0,0,1833,1834,5,91,0,0,1834,422,1,0,0,0,1835,1836,5,93,0,0,1836,424,1,0,0,0,1837,1838,5,94,0,0,1838,426,1,0,0,0,1839,1840,5,123,0,0,1840,428,1,0,0,0,1841,1842,5,124,0,0,1842,430,1,0,0,0,1843,1844,5,125,0,0,1844,432,1,0,0,0,1845,1846,5,126,0,0,1846,434,1,0,0,0,1847,1851,7,0,0,0,1848,1850,7,1,0,0,1849,1848,1,0,0,0,1850,1853,1,0,0,0,1851,1849,1,0,0,0,1851,1852,1,0,0,0,1852,436,1,0,0,0,1853,1851,1,0,0,0,1854,1860,5,39,0,0,1855,1856,5,92,0,0,1856,1859,9,0,0,0,1857,1859,8,2,0,0,1858,1855,1,0,0,0,1858,1857,1,0,0,0,1859,1862,1,0,0,0,1860,1858,1,0,0,0,1860,1861,1,0,0,0,1861,1863,1,0,0,0,1862,1860,1,0,0,0,1863,1864,5,39,0,0,1864,438,1,0,0,0,1865,1871,5,34,0,0,1866,1867,5,92,0,0,1867,1870,9,0,0,0,1868,1870,8,3,0,0,1869,1866,1,0,0,0,1869,1868,1,0,0,0,1870,1873,1,0,0,0,1871,1869,1,0,0,0,1871,1872,1,0,0,0,1872,1874,1,0,0,0,1873,1871,1,0,0,0,1874,1875,5,34,0,0,1875,440,1,0,0,0,1876,1878,7,4,0,0,1877,1876,1,0,0,0,1878,1879,1,0,0,0,1879,1877,1,0,0,0,1879,1880,1,0,0,0,1880,442,1,0,0,0,1881,1883,7,4,0,0,1882,1881,1,0,0,0,1883,1886,1,0,0,0,1884,1882,1,0,0,0,1884,1885,1,0,0,0,1885,1887,1,0,0,0,1886,1884,1,0,0,0,1887,1889,5,46,0,0,1888,1890,7,4,0,0,1889,1888,1,0,0,0,1890,1891,1,0,0,0,1891,1889,1,0,0,0,1891,1892,1,0,0,0,1892,1902,1,0,0,0,1893,1895,7,5,0,0,1894,1896,7,6,0,0,1895,1894,1,0,0,0,1895,1896,1,0,0,0,1896,1898,1,0,0,0,1897,1899,7,4,0,0,1898,1897,1,0,0,0,1899,1900,1,0,0,0,1900,1898,1,0,0,0,1900,1901,1,0,0,0,1901,1903,1,0,0,0,1902,1893,1,0,0,0,1902,1903,1,0,0,0,1903,1919,1,0,0,0,1904,1906,7,4,0,0,1905,1904,1,0,0,0,1906,1907,1,0,0,0,1907,1905,1,0,0,0,1907,1908,1,0,0,0,1908,1909,1,0,0,0,1909,1911,7,5,0,0,1910,1912,7,6,0,0,1911,1910,1,0,0,0,1911,1912,1,0,0,0,1912,1914,1,0,0,0,1913,1915,7,4,0,0,1914,1913,1,0,0,0,1915,1916,1,0,0,0,1916,1914,1,0,0,0,1916,1917,1,0,0,0,1917,1919,1,0,0,0,1918,1884,1,0,0,0,1918,1905,1,0,0,0,1919,444,1,0,0,0,1920,1921,5,47,0,0,1921,1922,5,42,0,0,1922,1926,1,0,0,0,1923,1925,9,0,0,0,1924,1923,1,0,0,0,1925,1928,1,0,0,0,1926,1927,1,0,0,0,1926,1924,1,0,0,0,1927,1929,1,0,0,0,1928,1926,1,0,0,0,1929,1930,5,42,0,0,1930,1931,5,47,0,0,1931,446,1,0,0,0,1932,1933,5,47,0,0,1933,1934,5,47,0,0,1934,1938,1,0,0,0,1935,1937,8,7,0,0,1936,1935,1,0,0,0,1937,1940,1,0,0,0,1938,1936,1,0,0,0,1938,1939,1,0,0,0,1939,1941,1,0,0,0,1940,1938,1,0,0,0,1941,1942,6,223,0,0,1942,448,1,0,0,0,1943,1945,7,8,0,0,1944,1943,1,0,0,0,1945,1946,1,0,0,0,1946,1944,1,0,0,0,1946,1947,1,0,0,0,1947,1948,1,0,0,0,1948,1949,6,224,0,0,1949,450,1,0,0,0,19,0,1851,1858,1860,1869,1871,1879,1884,1891,1895,1900,1902,1907,1911,1916,1918,1926,1938,1946,1,6,0,0];static __ATN;static get _ATN(){return r.__ATN||(r.__ATN=new oi().deserialize(r._serializedATN)),r.__ATN}static vocabulary=new lr(r.literalNames,r.symbolicNames,[]);get vocabulary(){return r.vocabulary}static decisionsToDFA=r._ATN.decisionToState.map((e,t)=>new kr(e,t))};var s=class r extends F3{static ABOUT=1;static ABSTRACT=2;static ACCEPT=3;static ACTION=4;static ACTOR=5;static AFTER=6;static ALIAS=7;static ALL=8;static ALLOCATE=9;static ALLOCATION=10;static ANALYSIS=11;static AND=12;static AS=13;static ASSERT=14;static ASSIGN=15;static ASSOC=16;static ASSUME=17;static AT=18;static ATTRIBUTE=19;static BEHAVIOR=20;static BIND=21;static BINDING=22;static BOOL=23;static BY=24;static CALC=25;static CASE=26;static CHAINS=27;static CLASS=28;static CLASSIFIER=29;static COMMENT=30;static COMPOSITE=31;static CONCERN=32;static CONJUGATE=33;static CONJUGATES=34;static CONJUGATION=35;static CONNECT=36;static CONNECTION=37;static CONNECTOR=38;static CONST=39;static CONSTANT=40;static CONSTRAINT=41;static CROSSES=42;static DATATYPE=43;static DECIDE=44;static DEF=45;static DEFAULT=46;static DEFINED=47;static DEPENDENCY=48;static DERIVED=49;static DIFFERENCES=50;static DISJOINING=51;static DISJOINT=52;static DO=53;static DOC=54;static ELSE=55;static END=56;static ENTRY=57;static ENUM=58;static EVENT=59;static EXHIBIT=60;static EXIT=61;static EXPOSE=62;static EXPR=63;static FALSE=64;static FEATURE=65;static FEATURED=66;static FEATURING=67;static FILTER=68;static FIRST=69;static FLOW=70;static FOR=71;static FORK=72;static FRAME=73;static FROM=74;static FUNCTION=75;static HASTYPE=76;static IF=77;static IMPLIES=78;static IMPORT=79;static IN=80;static INCLUDE=81;static INDIVIDUAL=82;static INOUT=83;static INTERACTION=84;static INTERFACE=85;static INTERSECTS=86;static INV=87;static INVERSE=88;static INVERTING=89;static ISTYPE=90;static ITEM=91;static JOIN=92;static LANGUAGE=93;static LIBRARY=94;static LOCALE=95;static LOOP=96;static MEMBER=97;static MERGE=98;static MESSAGE=99;static META=100;static METACLASS=101;static METADATA=102;static MULTIPLICITY=103;static NAMESPACE=104;static NEW=105;static NONUNIQUE=106;static NOT=107;static NULL=108;static OBJECTIVE=109;static OCCURRENCE=110;static OF=111;static OR=112;static ORDERED=113;static OUT=114;static PACKAGE=115;static PARALLEL=116;static PART=117;static PERFORM=118;static PORT=119;static PORTION=120;static PREDICATE=121;static PRIVATE=122;static PROTECTED=123;static PUBLIC=124;static REDEFINES=125;static REDEFINITION=126;static REF=127;static REFERENCES=128;static RENDER=129;static RENDERING=130;static REP=131;static REQUIRE=132;static REQUIREMENT=133;static RETURN=134;static SATISFY=135;static SEND=136;static SNAPSHOT=137;static SPECIALIZATION=138;static SPECIALIZES=139;static STAKEHOLDER=140;static STANDARD=141;static STATE=142;static STEP=143;static STRUCT=144;static SUBCLASSIFIER=145;static SUBJECT=146;static SUBSET=147;static SUBSETS=148;static SUBTYPE=149;static SUCCESSION=150;static TERMINATE=151;static THEN=152;static TIMESLICE=153;static TO=154;static TRANSITION=155;static TRUE=156;static TYPE=157;static TYPED=158;static TYPING=159;static UNIONS=160;static UNTIL=161;static USE=162;static VAR=163;static VARIANT=164;static VARIATION=165;static VERIFICATION=166;static VERIFY=167;static VIA=168;static VIEW=169;static VIEWPOINT=170;static WHEN=171;static WHILE=172;static XOR=173;static BANG_EQ_EQ=174;static COLON_COLON_GT=175;static COLON_GT_GT=176;static EQ_EQ_EQ=177;static BANG_EQ=178;static STAR_STAR=179;static ARROW=180;static DOT_DOT=181;static DOT_QUESTION=182;static COLON_COLON=183;static COLON_EQ=184;static COLON_GT=185;static LE=186;static EQ_EQ=187;static FAT_ARROW=188;static GE=189;static QUESTION_QUESTION=190;static AT_AT=191;static HASH=192;static DOLLAR=193;static PERCENT=194;static AMP=195;static LPAREN=196;static RPAREN=197;static STAR=198;static PLUS=199;static COMMA=200;static MINUS=201;static DOT=202;static SLASH=203;static COLON=204;static SEMI=205;static LT=206;static EQ=207;static GT=208;static QUESTION=209;static AT_SIGN=210;static LBRACK=211;static RBRACK=212;static CARET=213;static LBRACE=214;static PIPE=215;static RBRACE=216;static TILDE=217;static IDENTIFIER=218;static STRING=219;static DOUBLE_STRING=220;static INTEGER=221;static REAL=222;static REGULAR_COMMENT=223;static SINGLE_LINE_NOTE=224;static WS=225;static RULE_ownedExpression=0;static RULE_typeReference=1;static RULE_sequenceExpressionList=2;static RULE_baseExpression=3;static RULE_nullExpression=4;static RULE_featureReferenceExpression=5;static RULE_metadataAccessExpression=6;static RULE_invocationExpression=7;static RULE_constructorExpression=8;static RULE_bodyExpression=9;static RULE_argumentList=10;static RULE_positionalArgumentList=11;static RULE_namedArgumentList=12;static RULE_namedArgument=13;static RULE_literalExpression=14;static RULE_literalBoolean=15;static RULE_literalString=16;static RULE_literalInteger=17;static RULE_literalReal=18;static RULE_literalInfinity=19;static RULE_argumentMember=20;static RULE_argumentExpressionMember=21;static RULE_name=22;static RULE_identification=23;static RULE_relationshipBody=24;static RULE_relationshipOwnedElement=25;static RULE_ownedRelatedElement=26;static RULE_dependency=27;static RULE_annotation=28;static RULE_ownedAnnotation=29;static RULE_annotatingElement=30;static RULE_comment=31;static RULE_documentation=32;static RULE_textualRepresentation=33;static RULE_rootNamespace=34;static RULE_namespace=35;static RULE_namespaceDeclaration=36;static RULE_namespaceBody=37;static RULE_namespaceBodyElement=38;static RULE_memberPrefix=39;static RULE_visibilityIndicator=40;static RULE_namespaceMember=41;static RULE_nonFeatureMember=42;static RULE_namespaceFeatureMember=43;static RULE_aliasMember=44;static RULE_qualifiedName=45;static RULE_importRule=46;static RULE_importDeclaration=47;static RULE_membershipImport=48;static RULE_namespaceImport=49;static RULE_filterPackage=50;static RULE_filterPackageMember=51;static RULE_memberElement=52;static RULE_nonFeatureElement=53;static RULE_featureElement=54;static RULE_type=55;static RULE_typePrefix=56;static RULE_typeDeclaration=57;static RULE_specializationPart=58;static RULE_conjugationPart=59;static RULE_typeRelationshipPart=60;static RULE_disjoiningPart=61;static RULE_unioningPart=62;static RULE_intersectingPart=63;static RULE_differencingPart=64;static RULE_typeBody=65;static RULE_typeBodyElement=66;static RULE_specialization=67;static RULE_ownedSpecialization=68;static RULE_specificType=69;static RULE_generalType=70;static RULE_conjugation=71;static RULE_ownedConjugation=72;static RULE_disjoining=73;static RULE_ownedDisjoining=74;static RULE_unioning=75;static RULE_intersecting=76;static RULE_differencing=77;static RULE_featureMember=78;static RULE_typeFeatureMember=79;static RULE_ownedFeatureMember=80;static RULE_classifier=81;static RULE_classifierDeclaration=82;static RULE_superclassingPart=83;static RULE_subclassification=84;static RULE_ownedSubclassification=85;static RULE_feature=86;static RULE_endFeaturePrefix=87;static RULE_basicFeaturePrefix=88;static RULE_featurePrefix=89;static RULE_ownedCrossFeatureMember=90;static RULE_ownedCrossFeature=91;static RULE_featureDirection=92;static RULE_featureDeclaration=93;static RULE_featureIdentification=94;static RULE_featureRelationshipPart=95;static RULE_chainingPart=96;static RULE_invertingPart=97;static RULE_typeFeaturingPart=98;static RULE_featureSpecializationPart=99;static RULE_multiplicityPart=100;static RULE_featureSpecialization=101;static RULE_typings=102;static RULE_typedBy=103;static RULE_subsettings=104;static RULE_subsets=105;static RULE_references=106;static RULE_crosses=107;static RULE_redefinitions=108;static RULE_redefines=109;static RULE_featureTyping=110;static RULE_ownedFeatureTyping=111;static RULE_subsetting=112;static RULE_ownedSubsetting=113;static RULE_ownedReferenceSubsetting=114;static RULE_ownedCrossSubsetting=115;static RULE_redefinition=116;static RULE_ownedRedefinition=117;static RULE_ownedFeatureChain=118;static RULE_featureChain=119;static RULE_ownedFeatureChaining=120;static RULE_featureInverting=121;static RULE_ownedFeatureInverting=122;static RULE_typeFeaturing=123;static RULE_ownedTypeFeaturing=124;static RULE_dataType=125;static RULE_class=126;static RULE_structure=127;static RULE_association=128;static RULE_associationStructure=129;static RULE_connector=130;static RULE_connectorDeclaration=131;static RULE_binaryConnectorDeclaration=132;static RULE_naryConnectorDeclaration=133;static RULE_connectorEndMember=134;static RULE_connectorEnd=135;static RULE_ownedCrossMultiplicityMember=136;static RULE_ownedCrossMultiplicity=137;static RULE_bindingConnector=138;static RULE_bindingConnectorDeclaration=139;static RULE_succession=140;static RULE_successionDeclaration=141;static RULE_behavior=142;static RULE_step=143;static RULE_function=144;static RULE_functionBody=145;static RULE_functionBodyPart=146;static RULE_returnFeatureMember=147;static RULE_resultExpressionMember=148;static RULE_expression=149;static RULE_predicate=150;static RULE_booleanExpression=151;static RULE_invariant=152;static RULE_ownedExpressionMember=153;static RULE_metadataReference=154;static RULE_typeReferenceMember=155;static RULE_typeResultMember=156;static RULE_referenceTyping=157;static RULE_emptyResultMember=158;static RULE_sequenceOperatorExpression=159;static RULE_sequenceExpressionListMember=160;static RULE_bodyArgumentMember=161;static RULE_bodyArgument=162;static RULE_bodyArgumentValue=163;static RULE_functionReferenceArgumentMember=164;static RULE_functionReferenceArgument=165;static RULE_functionReferenceArgumentValue=166;static RULE_functionReferenceExpression=167;static RULE_functionReferenceMember=168;static RULE_functionReference=169;static RULE_featureChainMember=170;static RULE_ownedFeatureChainMember=171;static RULE_featureReferenceMember=172;static RULE_featureReference=173;static RULE_elementReferenceMember=174;static RULE_constructorResultMember=175;static RULE_constructorResult=176;static RULE_instantiatedTypeMember=177;static RULE_instantiatedTypeReference=178;static RULE_namedArgumentMember=179;static RULE_parameterRedefinition=180;static RULE_expressionBodyMember=181;static RULE_expressionBody=182;static RULE_booleanValue=183;static RULE_realValue=184;static RULE_interaction=185;static RULE_flow=186;static RULE_successionFlow=187;static RULE_flowDeclaration=188;static RULE_payloadFeatureMember=189;static RULE_payloadFeature=190;static RULE_payloadFeatureSpecializationPart=191;static RULE_flowEndMember=192;static RULE_flowEnd=193;static RULE_flowFeatureMember=194;static RULE_flowFeature=195;static RULE_flowFeatureRedefinition=196;static RULE_valuePart=197;static RULE_featureValue=198;static RULE_multiplicity=199;static RULE_multiplicitySubset=200;static RULE_multiplicityRange=201;static RULE_ownedMultiplicity=202;static RULE_ownedMultiplicityRange=203;static RULE_multiplicityBounds=204;static RULE_multiplicityExpressionMember=205;static RULE_metaclass=206;static RULE_prefixMetadataAnnotation=207;static RULE_prefixMetadataMember=208;static RULE_prefixMetadataFeature=209;static RULE_metadataFeature=210;static RULE_metadataFeatureDeclaration=211;static RULE_metadataBody=212;static RULE_metadataBodyElement=213;static RULE_metadataBodyFeatureMember=214;static RULE_metadataBodyFeature=215;static RULE_package=216;static RULE_libraryPackage=217;static RULE_packageDeclaration=218;static RULE_packageBody=219;static RULE_elementFilterMember=220;static RULE_dependencyDeclaration=221;static RULE_annotatingMember=222;static RULE_packageBodyElement=223;static RULE_packageMember=224;static RULE_definitionElement=225;static RULE_usageElement=226;static RULE_basicDefinitionPrefix=227;static RULE_definitionExtensionKeyword=228;static RULE_definitionPrefix=229;static RULE_definition=230;static RULE_definitionDeclaration=231;static RULE_definitionBody=232;static RULE_definitionBodyItem=233;static RULE_definitionBodyItemContent=234;static RULE_definitionMember=235;static RULE_variantUsageMember=236;static RULE_nonOccurrenceUsageMember=237;static RULE_occurrenceUsageMember=238;static RULE_structureUsageMember=239;static RULE_behaviorUsageMember=240;static RULE_refPrefix=241;static RULE_basicUsagePrefix=242;static RULE_endUsagePrefix=243;static RULE_usageExtensionKeyword=244;static RULE_unextendedUsagePrefix=245;static RULE_usagePrefix=246;static RULE_usage=247;static RULE_usageDeclaration=248;static RULE_usageCompletion=249;static RULE_usageBody=250;static RULE_defaultReferenceUsage=251;static RULE_referenceUsage=252;static RULE_endFeatureUsage=253;static RULE_variantReference=254;static RULE_nonOccurrenceUsageElement=255;static RULE_occurrenceUsageElement=256;static RULE_structureUsageElement=257;static RULE_behaviorUsageElement=258;static RULE_variantUsageElement=259;static RULE_subclassificationPart=260;static RULE_attributeDefinition=261;static RULE_attributeUsage=262;static RULE_enumerationDefinition=263;static RULE_enumerationBody=264;static RULE_enumerationUsageMember=265;static RULE_enumeratedValue=266;static RULE_enumerationUsage=267;static RULE_occurrenceDefinitionPrefix=268;static RULE_occurrenceDefinition=269;static RULE_individualDefinition=270;static RULE_emptyMultiplicityMember=271;static RULE_occurrenceUsagePrefix=272;static RULE_occurrenceUsage=273;static RULE_individualUsage=274;static RULE_portionUsage=275;static RULE_portionKind=276;static RULE_eventOccurrenceUsage=277;static RULE_sourceSuccessionMember=278;static RULE_sourceSuccession=279;static RULE_sourceEndMember=280;static RULE_sourceEnd=281;static RULE_itemDefinition=282;static RULE_itemUsage=283;static RULE_partDefinition=284;static RULE_partUsage=285;static RULE_portDefinition=286;static RULE_conjugatedPortDefinitionMember=287;static RULE_conjugatedPortDefinition=288;static RULE_portUsage=289;static RULE_conjugatedPortTyping=290;static RULE_connectionDefinition=291;static RULE_connectionUsage=292;static RULE_connectorPart=293;static RULE_binaryConnectorPart=294;static RULE_naryConnectorPart=295;static RULE_bindingConnectorAsUsage=296;static RULE_successionAsUsage=297;static RULE_interfaceDefinition=298;static RULE_interfaceBody=299;static RULE_interfaceBodyItem=300;static RULE_interfaceNonOccurrenceUsageMember=301;static RULE_interfaceNonOccurrenceUsageElement=302;static RULE_interfaceOccurrenceUsageMember=303;static RULE_interfaceOccurrenceUsageElement=304;static RULE_defaultInterfaceEnd=305;static RULE_interfaceUsage=306;static RULE_interfaceUsageDeclaration=307;static RULE_interfacePart=308;static RULE_binaryInterfacePart=309;static RULE_naryInterfacePart=310;static RULE_interfaceEndMember=311;static RULE_interfaceEnd=312;static RULE_allocationDefinition=313;static RULE_allocationUsage=314;static RULE_allocationUsageDeclaration=315;static RULE_flowDefinition=316;static RULE_message=317;static RULE_messageDeclaration=318;static RULE_messageEventMember=319;static RULE_messageEvent=320;static RULE_flowUsage=321;static RULE_successionFlowUsage=322;static RULE_flowPayloadFeatureMember=323;static RULE_flowPayloadFeature=324;static RULE_flowEndSubsetting=325;static RULE_featureChainPrefix=326;static RULE_actionDefinition=327;static RULE_actionBody=328;static RULE_actionBodyItem=329;static RULE_nonBehaviorBodyItem=330;static RULE_actionBehaviorMember=331;static RULE_initialNodeMember=332;static RULE_actionNodeMember=333;static RULE_actionTargetSuccessionMember=334;static RULE_guardedSuccessionMember=335;static RULE_actionUsage=336;static RULE_actionUsageDeclaration=337;static RULE_performActionUsage=338;static RULE_performActionUsageDeclaration=339;static RULE_actionNode=340;static RULE_actionNodeUsageDeclaration=341;static RULE_actionNodePrefix=342;static RULE_controlNode=343;static RULE_controlNodePrefix=344;static RULE_mergeNode=345;static RULE_decisionNode=346;static RULE_joinNode=347;static RULE_forkNode=348;static RULE_acceptNode=349;static RULE_acceptNodeDeclaration=350;static RULE_acceptParameterPart=351;static RULE_payloadParameterMember=352;static RULE_payloadParameter=353;static RULE_triggerValuePart=354;static RULE_triggerFeatureValue=355;static RULE_triggerExpression=356;static RULE_sendNode=357;static RULE_sendNodeDeclaration=358;static RULE_senderReceiverPart=359;static RULE_nodeParameterMember=360;static RULE_nodeParameter=361;static RULE_featureBinding=362;static RULE_emptyParameterMember=363;static RULE_assignmentNode=364;static RULE_assignmentNodeDeclaration=365;static RULE_assignmentTargetMember=366;static RULE_assignmentTargetParameter=367;static RULE_assignmentTargetBinding=368;static RULE_terminateNode=369;static RULE_ifNode=370;static RULE_expressionParameterMember=371;static RULE_actionBodyParameterMember=372;static RULE_actionBodyParameter=373;static RULE_ifNodeParameterMember=374;static RULE_whileLoopNode=375;static RULE_forLoopNode=376;static RULE_forVariableDeclarationMember=377;static RULE_forVariableDeclaration=378;static RULE_actionTargetSuccession=379;static RULE_targetSuccession=380;static RULE_guardedTargetSuccession=381;static RULE_defaultTargetSuccession=382;static RULE_guardedSuccession=383;static RULE_stateDefinition=384;static RULE_stateDefBody=385;static RULE_stateBodyItem=386;static RULE_entryActionMember=387;static RULE_doActionMember=388;static RULE_exitActionMember=389;static RULE_entryTransitionMember=390;static RULE_stateActionUsage=391;static RULE_statePerformActionUsage=392;static RULE_stateAcceptActionUsage=393;static RULE_stateSendActionUsage=394;static RULE_stateAssignmentActionUsage=395;static RULE_transitionUsageMember=396;static RULE_targetTransitionUsageMember=397;static RULE_stateUsage=398;static RULE_stateUsageBody=399;static RULE_exhibitStateUsage=400;static RULE_transitionUsage=401;static RULE_targetTransitionUsage=402;static RULE_triggerActionMember=403;static RULE_triggerAction=404;static RULE_guardExpressionMember=405;static RULE_effectBehaviorMember=406;static RULE_effectBehaviorUsage=407;static RULE_transitionPerformActionUsage=408;static RULE_transitionAcceptActionUsage=409;static RULE_transitionSendActionUsage=410;static RULE_transitionAssignmentActionUsage=411;static RULE_transitionSuccessionMember=412;static RULE_transitionSuccession=413;static RULE_emptyEndMember=414;static RULE_calculationDefinition=415;static RULE_calculationUsage=416;static RULE_calculationBody=417;static RULE_calculationBodyPart=418;static RULE_calculationBodyItem=419;static RULE_returnParameterMember=420;static RULE_constraintDefinition=421;static RULE_constraintUsage=422;static RULE_assertConstraintUsage=423;static RULE_constraintUsageDeclaration=424;static RULE_requirementDefinition=425;static RULE_requirementBody=426;static RULE_requirementBodyItem=427;static RULE_subjectMember=428;static RULE_subjectUsage=429;static RULE_requirementConstraintMember=430;static RULE_requirementKind=431;static RULE_requirementConstraintUsage=432;static RULE_framedConcernMember=433;static RULE_framedConcernUsage=434;static RULE_actorMember=435;static RULE_actorUsage=436;static RULE_stakeholderMember=437;static RULE_stakeholderUsage=438;static RULE_requirementUsage=439;static RULE_satisfyRequirementUsage=440;static RULE_satisfactionSubjectMember=441;static RULE_satisfactionParameter=442;static RULE_satisfactionFeatureValue=443;static RULE_satisfactionReferenceExpression=444;static RULE_concernDefinition=445;static RULE_concernUsage=446;static RULE_caseDefinition=447;static RULE_caseUsage=448;static RULE_caseBody=449;static RULE_caseBodyItem=450;static RULE_objectiveMember=451;static RULE_objectiveRequirementUsage=452;static RULE_analysisCaseDefinition=453;static RULE_analysisCaseUsage=454;static RULE_verificationCaseDefinition=455;static RULE_verificationCaseUsage=456;static RULE_requirementVerificationMember=457;static RULE_requirementVerificationUsage=458;static RULE_useCaseDefinition=459;static RULE_useCaseUsage=460;static RULE_includeUseCaseUsage=461;static RULE_viewDefinition=462;static RULE_viewDefinitionBody=463;static RULE_viewDefinitionBodyItem=464;static RULE_viewRenderingMember=465;static RULE_viewRenderingUsage=466;static RULE_viewUsage=467;static RULE_viewBody=468;static RULE_viewBodyItem=469;static RULE_expose=470;static RULE_membershipExpose=471;static RULE_namespaceExpose=472;static RULE_viewpointDefinition=473;static RULE_viewpointUsage=474;static RULE_renderingDefinition=475;static RULE_renderingUsage=476;static RULE_metadataDefinition=477;static RULE_prefixMetadataUsage=478;static RULE_metadataUsage=479;static RULE_metadataUsageDeclaration=480;static RULE_metadataBodyUsageMember=481;static RULE_metadataBodyUsage=482;static RULE_extendedDefinition=483;static RULE_extendedUsage=484;static RULE_filterPackageImportDeclaration=485;static RULE_namespaceImportDirect=486;static RULE_calculationUsageDeclaration=487;static RULE_emptyActionUsage_=488;static RULE_emptyFeature_=489;static RULE_emptyMultiplicity_=490;static RULE_emptyUsage_=491;static RULE_filterPackageImport=492;static RULE_nonFeatureChainPrimaryExpression=493;static RULE_portConjugation=494;static literalNames=[null,"'about'","'abstract'","'accept'","'action'","'actor'","'after'","'alias'","'all'","'allocate'","'allocation'","'analysis'","'and'","'as'","'assert'","'assign'","'assoc'","'assume'","'at'","'attribute'","'behavior'","'bind'","'binding'","'bool'","'by'","'calc'","'case'","'chains'","'class'","'classifier'","'comment'","'composite'","'concern'","'conjugate'","'conjugates'","'conjugation'","'connect'","'connection'","'connector'","'const'","'constant'","'constraint'","'crosses'","'datatype'","'decide'","'def'","'default'","'defined'","'dependency'","'derived'","'differences'","'disjoining'","'disjoint'","'do'","'doc'","'else'","'end'","'entry'","'enum'","'event'","'exhibit'","'exit'","'expose'","'expr'","'false'","'feature'","'featured'","'featuring'","'filter'","'first'","'flow'","'for'","'fork'","'frame'","'from'","'function'","'hastype'","'if'","'implies'","'import'","'in'","'include'","'individual'","'inout'","'interaction'","'interface'","'intersects'","'inv'","'inverse'","'inverting'","'istype'","'item'","'join'","'language'","'library'","'locale'","'loop'","'member'","'merge'","'message'","'meta'","'metaclass'","'metadata'","'multiplicity'","'namespace'","'new'","'nonunique'","'not'","'null'","'objective'","'occurrence'","'of'","'or'","'ordered'","'out'","'package'","'parallel'","'part'","'perform'","'port'","'portion'","'predicate'","'private'","'protected'","'public'","'redefines'","'redefinition'","'ref'","'references'","'render'","'rendering'","'rep'","'require'","'requirement'","'return'","'satisfy'","'send'","'snapshot'","'specialization'","'specializes'","'stakeholder'","'standard'","'state'","'step'","'struct'","'subclassifier'","'subject'","'subset'","'subsets'","'subtype'","'succession'","'terminate'","'then'","'timeslice'","'to'","'transition'","'true'","'type'","'typed'","'typing'","'unions'","'until'","'use'","'var'","'variant'","'variation'","'verification'","'verify'","'via'","'view'","'viewpoint'","'when'","'while'","'xor'","'!=='","'::>'","':>>'","'==='","'!='","'**'","'->'","'..'","'.?'","'::'","':='","':>'","'<='","'=='","'=>'","'>='","'??'","'@@'","'#'","'$'","'%'","'&'","'('","')'","'*'","'+'","','","'-'","'.'","'/'","':'","';'","'<'","'='","'>'","'?'","'@'","'['","']'","'^'","'{'","'|'","'}'","'~'"];static symbolicNames=[null,"ABOUT","ABSTRACT","ACCEPT","ACTION","ACTOR","AFTER","ALIAS","ALL","ALLOCATE","ALLOCATION","ANALYSIS","AND","AS","ASSERT","ASSIGN","ASSOC","ASSUME","AT","ATTRIBUTE","BEHAVIOR","BIND","BINDING","BOOL","BY","CALC","CASE","CHAINS","CLASS","CLASSIFIER","COMMENT","COMPOSITE","CONCERN","CONJUGATE","CONJUGATES","CONJUGATION","CONNECT","CONNECTION","CONNECTOR","CONST","CONSTANT","CONSTRAINT","CROSSES","DATATYPE","DECIDE","DEF","DEFAULT","DEFINED","DEPENDENCY","DERIVED","DIFFERENCES","DISJOINING","DISJOINT","DO","DOC","ELSE","END","ENTRY","ENUM","EVENT","EXHIBIT","EXIT","EXPOSE","EXPR","FALSE","FEATURE","FEATURED","FEATURING","FILTER","FIRST","FLOW","FOR","FORK","FRAME","FROM","FUNCTION","HASTYPE","IF","IMPLIES","IMPORT","IN","INCLUDE","INDIVIDUAL","INOUT","INTERACTION","INTERFACE","INTERSECTS","INV","INVERSE","INVERTING","ISTYPE","ITEM","JOIN","LANGUAGE","LIBRARY","LOCALE","LOOP","MEMBER","MERGE","MESSAGE","META","METACLASS","METADATA","MULTIPLICITY","NAMESPACE","NEW","NONUNIQUE","NOT","NULL","OBJECTIVE","OCCURRENCE","OF","OR","ORDERED","OUT","PACKAGE","PARALLEL","PART","PERFORM","PORT","PORTION","PREDICATE","PRIVATE","PROTECTED","PUBLIC","REDEFINES","REDEFINITION","REF","REFERENCES","RENDER","RENDERING","REP","REQUIRE","REQUIREMENT","RETURN","SATISFY","SEND","SNAPSHOT","SPECIALIZATION","SPECIALIZES","STAKEHOLDER","STANDARD","STATE","STEP","STRUCT","SUBCLASSIFIER","SUBJECT","SUBSET","SUBSETS","SUBTYPE","SUCCESSION","TERMINATE","THEN","TIMESLICE","TO","TRANSITION","TRUE","TYPE","TYPED","TYPING","UNIONS","UNTIL","USE","VAR","VARIANT","VARIATION","VERIFICATION","VERIFY","VIA","VIEW","VIEWPOINT","WHEN","WHILE","XOR","BANG_EQ_EQ","COLON_COLON_GT","COLON_GT_GT","EQ_EQ_EQ","BANG_EQ","STAR_STAR","ARROW","DOT_DOT","DOT_QUESTION","COLON_COLON","COLON_EQ","COLON_GT","LE","EQ_EQ","FAT_ARROW","GE","QUESTION_QUESTION","AT_AT","HASH","DOLLAR","PERCENT","AMP","LPAREN","RPAREN","STAR","PLUS","COMMA","MINUS","DOT","SLASH","COLON","SEMI","LT","EQ","GT","QUESTION","AT_SIGN","LBRACK","RBRACK","CARET","LBRACE","PIPE","RBRACE","TILDE","IDENTIFIER","STRING","DOUBLE_STRING","INTEGER","REAL","REGULAR_COMMENT","SINGLE_LINE_NOTE","WS"];static ruleNames=["ownedExpression","typeReference","sequenceExpressionList","baseExpression","nullExpression","featureReferenceExpression","metadataAccessExpression","invocationExpression","constructorExpression","bodyExpression","argumentList","positionalArgumentList","namedArgumentList","namedArgument","literalExpression","literalBoolean","literalString","literalInteger","literalReal","literalInfinity","argumentMember","argumentExpressionMember","name","identification","relationshipBody","relationshipOwnedElement","ownedRelatedElement","dependency","annotation","ownedAnnotation","annotatingElement","comment","documentation","textualRepresentation","rootNamespace","namespace","namespaceDeclaration","namespaceBody","namespaceBodyElement","memberPrefix","visibilityIndicator","namespaceMember","nonFeatureMember","namespaceFeatureMember","aliasMember","qualifiedName","importRule","importDeclaration","membershipImport","namespaceImport","filterPackage","filterPackageMember","memberElement","nonFeatureElement","featureElement","type","typePrefix","typeDeclaration","specializationPart","conjugationPart","typeRelationshipPart","disjoiningPart","unioningPart","intersectingPart","differencingPart","typeBody","typeBodyElement","specialization","ownedSpecialization","specificType","generalType","conjugation","ownedConjugation","disjoining","ownedDisjoining","unioning","intersecting","differencing","featureMember","typeFeatureMember","ownedFeatureMember","classifier","classifierDeclaration","superclassingPart","subclassification","ownedSubclassification","feature","endFeaturePrefix","basicFeaturePrefix","featurePrefix","ownedCrossFeatureMember","ownedCrossFeature","featureDirection","featureDeclaration","featureIdentification","featureRelationshipPart","chainingPart","invertingPart","typeFeaturingPart","featureSpecializationPart","multiplicityPart","featureSpecialization","typings","typedBy","subsettings","subsets","references","crosses","redefinitions","redefines","featureTyping","ownedFeatureTyping","subsetting","ownedSubsetting","ownedReferenceSubsetting","ownedCrossSubsetting","redefinition","ownedRedefinition","ownedFeatureChain","featureChain","ownedFeatureChaining","featureInverting","ownedFeatureInverting","typeFeaturing","ownedTypeFeaturing","dataType","class","structure","association","associationStructure","connector","connectorDeclaration","binaryConnectorDeclaration","naryConnectorDeclaration","connectorEndMember","connectorEnd","ownedCrossMultiplicityMember","ownedCrossMultiplicity","bindingConnector","bindingConnectorDeclaration","succession","successionDeclaration","behavior","step","function","functionBody","functionBodyPart","returnFeatureMember","resultExpressionMember","expression","predicate","booleanExpression","invariant","ownedExpressionMember","metadataReference","typeReferenceMember","typeResultMember","referenceTyping","emptyResultMember","sequenceOperatorExpression","sequenceExpressionListMember","bodyArgumentMember","bodyArgument","bodyArgumentValue","functionReferenceArgumentMember","functionReferenceArgument","functionReferenceArgumentValue","functionReferenceExpression","functionReferenceMember","functionReference","featureChainMember","ownedFeatureChainMember","featureReferenceMember","featureReference","elementReferenceMember","constructorResultMember","constructorResult","instantiatedTypeMember","instantiatedTypeReference","namedArgumentMember","parameterRedefinition","expressionBodyMember","expressionBody","booleanValue","realValue","interaction","flow","successionFlow","flowDeclaration","payloadFeatureMember","payloadFeature","payloadFeatureSpecializationPart","flowEndMember","flowEnd","flowFeatureMember","flowFeature","flowFeatureRedefinition","valuePart","featureValue","multiplicity","multiplicitySubset","multiplicityRange","ownedMultiplicity","ownedMultiplicityRange","multiplicityBounds","multiplicityExpressionMember","metaclass","prefixMetadataAnnotation","prefixMetadataMember","prefixMetadataFeature","metadataFeature","metadataFeatureDeclaration","metadataBody","metadataBodyElement","metadataBodyFeatureMember","metadataBodyFeature","package","libraryPackage","packageDeclaration","packageBody","elementFilterMember","dependencyDeclaration","annotatingMember","packageBodyElement","packageMember","definitionElement","usageElement","basicDefinitionPrefix","definitionExtensionKeyword","definitionPrefix","definition","definitionDeclaration","definitionBody","definitionBodyItem","definitionBodyItemContent","definitionMember","variantUsageMember","nonOccurrenceUsageMember","occurrenceUsageMember","structureUsageMember","behaviorUsageMember","refPrefix","basicUsagePrefix","endUsagePrefix","usageExtensionKeyword","unextendedUsagePrefix","usagePrefix","usage","usageDeclaration","usageCompletion","usageBody","defaultReferenceUsage","referenceUsage","endFeatureUsage","variantReference","nonOccurrenceUsageElement","occurrenceUsageElement","structureUsageElement","behaviorUsageElement","variantUsageElement","subclassificationPart","attributeDefinition","attributeUsage","enumerationDefinition","enumerationBody","enumerationUsageMember","enumeratedValue","enumerationUsage","occurrenceDefinitionPrefix","occurrenceDefinition","individualDefinition","emptyMultiplicityMember","occurrenceUsagePrefix","occurrenceUsage","individualUsage","portionUsage","portionKind","eventOccurrenceUsage","sourceSuccessionMember","sourceSuccession","sourceEndMember","sourceEnd","itemDefinition","itemUsage","partDefinition","partUsage","portDefinition","conjugatedPortDefinitionMember","conjugatedPortDefinition","portUsage","conjugatedPortTyping","connectionDefinition","connectionUsage","connectorPart","binaryConnectorPart","naryConnectorPart","bindingConnectorAsUsage","successionAsUsage","interfaceDefinition","interfaceBody","interfaceBodyItem","interfaceNonOccurrenceUsageMember","interfaceNonOccurrenceUsageElement","interfaceOccurrenceUsageMember","interfaceOccurrenceUsageElement","defaultInterfaceEnd","interfaceUsage","interfaceUsageDeclaration","interfacePart","binaryInterfacePart","naryInterfacePart","interfaceEndMember","interfaceEnd","allocationDefinition","allocationUsage","allocationUsageDeclaration","flowDefinition","message","messageDeclaration","messageEventMember","messageEvent","flowUsage","successionFlowUsage","flowPayloadFeatureMember","flowPayloadFeature","flowEndSubsetting","featureChainPrefix","actionDefinition","actionBody","actionBodyItem","nonBehaviorBodyItem","actionBehaviorMember","initialNodeMember","actionNodeMember","actionTargetSuccessionMember","guardedSuccessionMember","actionUsage","actionUsageDeclaration","performActionUsage","performActionUsageDeclaration","actionNode","actionNodeUsageDeclaration","actionNodePrefix","controlNode","controlNodePrefix","mergeNode","decisionNode","joinNode","forkNode","acceptNode","acceptNodeDeclaration","acceptParameterPart","payloadParameterMember","payloadParameter","triggerValuePart","triggerFeatureValue","triggerExpression","sendNode","sendNodeDeclaration","senderReceiverPart","nodeParameterMember","nodeParameter","featureBinding","emptyParameterMember","assignmentNode","assignmentNodeDeclaration","assignmentTargetMember","assignmentTargetParameter","assignmentTargetBinding","terminateNode","ifNode","expressionParameterMember","actionBodyParameterMember","actionBodyParameter","ifNodeParameterMember","whileLoopNode","forLoopNode","forVariableDeclarationMember","forVariableDeclaration","actionTargetSuccession","targetSuccession","guardedTargetSuccession","defaultTargetSuccession","guardedSuccession","stateDefinition","stateDefBody","stateBodyItem","entryActionMember","doActionMember","exitActionMember","entryTransitionMember","stateActionUsage","statePerformActionUsage","stateAcceptActionUsage","stateSendActionUsage","stateAssignmentActionUsage","transitionUsageMember","targetTransitionUsageMember","stateUsage","stateUsageBody","exhibitStateUsage","transitionUsage","targetTransitionUsage","triggerActionMember","triggerAction","guardExpressionMember","effectBehaviorMember","effectBehaviorUsage","transitionPerformActionUsage","transitionAcceptActionUsage","transitionSendActionUsage","transitionAssignmentActionUsage","transitionSuccessionMember","transitionSuccession","emptyEndMember","calculationDefinition","calculationUsage","calculationBody","calculationBodyPart","calculationBodyItem","returnParameterMember","constraintDefinition","constraintUsage","assertConstraintUsage","constraintUsageDeclaration","requirementDefinition","requirementBody","requirementBodyItem","subjectMember","subjectUsage","requirementConstraintMember","requirementKind","requirementConstraintUsage","framedConcernMember","framedConcernUsage","actorMember","actorUsage","stakeholderMember","stakeholderUsage","requirementUsage","satisfyRequirementUsage","satisfactionSubjectMember","satisfactionParameter","satisfactionFeatureValue","satisfactionReferenceExpression","concernDefinition","concernUsage","caseDefinition","caseUsage","caseBody","caseBodyItem","objectiveMember","objectiveRequirementUsage","analysisCaseDefinition","analysisCaseUsage","verificationCaseDefinition","verificationCaseUsage","requirementVerificationMember","requirementVerificationUsage","useCaseDefinition","useCaseUsage","includeUseCaseUsage","viewDefinition","viewDefinitionBody","viewDefinitionBodyItem","viewRenderingMember","viewRenderingUsage","viewUsage","viewBody","viewBodyItem","expose","membershipExpose","namespaceExpose","viewpointDefinition","viewpointUsage","renderingDefinition","renderingUsage","metadataDefinition","prefixMetadataUsage","metadataUsage","metadataUsageDeclaration","metadataBodyUsageMember","metadataBodyUsage","extendedDefinition","extendedUsage","filterPackageImportDeclaration","namespaceImportDirect","calculationUsageDeclaration","emptyActionUsage_","emptyFeature_","emptyMultiplicity_","emptyUsage_","filterPackageImport","nonFeatureChainPrimaryExpression","portConjugation"];get grammarFileName(){return"SysMLv2Parser.g4"}get literalNames(){return r.literalNames}get symbolicNames(){return r.symbolicNames}get ruleNames(){return r.ruleNames}get serializedATN(){return r._serializedATN}createFailedPredicateException(e,t){return new ia(this,e,t)}constructor(e){super(e),this.interpreter=new na(this,r._ATN,r.decisionsToDFA,new Hi)}ownedExpression(e){e===void 0&&(e=0);let t=this.context,i=this.state,n=new ae(this.context,i),a=n,o=0;this.enterRecursionRule(n,0,r.RULE_ownedExpression,e);let l;try{let h;this.enterOuterAlt(n,1);{switch(this.state=1005,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.IF:this.state=991,this.match(r.IF),this.state=992,this.ownedExpression(0),this.state=993,this.match(r.QUESTION),this.state=994,this.ownedExpression(0),this.state=995,this.match(r.ELSE),this.state=996,this.ownedExpression(28);break;case r.NOT:case r.PLUS:case r.MINUS:case r.TILDE:this.state=998,l=this.tokenStream.LA(1),l===107||(l-199&-32)===0&&(1<<l-199&262149)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=999,this.ownedExpression(14);break;case r.AT_AT:case r.AT_SIGN:this.state=1e3,l=this.tokenStream.LA(1),l===191||l===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1001,this.typeReference();break;case r.ALL:this.state=1002,this.match(r.ALL),this.state=1003,this.typeReference();break;case r.FALSE:case r.NEW:case r.NULL:case r.TRUE:case r.DOLLAR:case r.LPAREN:case r.STAR:case r.LBRACE:case r.IDENTIFIER:case r.STRING:case r.DOUBLE_STRING:case r.INTEGER:case r.REAL:this.state=1004,this.baseExpression();break;default:throw new j(this)}for(this.context.stop=this.tokenStream.LT(-1),this.state=1088,this.errorHandler.sync(this),h=this.interpreter.adaptivePredict(this.tokenStream,5,this.context);h!==2&&h!==ee.INVALID_ALT_NUMBER;){if(h===1)switch(this.parseListeners!=null&&this.triggerExitRuleEvent(),a=n,this.state=1086,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,4,this.context)){case 1:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1007,!this.precpred(this.context,27))throw this.createFailedPredicateException("this.precpred(this.context, 27)");this.state=1008,this.match(r.QUESTION_QUESTION),this.state=1009,this.ownedExpression(28)}break;case 2:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1010,!this.precpred(this.context,26))throw this.createFailedPredicateException("this.precpred(this.context, 26)");this.state=1011,this.match(r.IMPLIES),this.state=1012,this.ownedExpression(27)}break;case 3:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1013,!this.precpred(this.context,25))throw this.createFailedPredicateException("this.precpred(this.context, 25)");this.state=1014,this.match(r.OR),this.state=1015,this.ownedExpression(26)}break;case 4:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1016,!this.precpred(this.context,24))throw this.createFailedPredicateException("this.precpred(this.context, 24)");this.state=1017,this.match(r.AND),this.state=1018,this.ownedExpression(25)}break;case 5:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1019,!this.precpred(this.context,23))throw this.createFailedPredicateException("this.precpred(this.context, 23)");this.state=1020,this.match(r.XOR),this.state=1021,this.ownedExpression(24)}break;case 6:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1022,!this.precpred(this.context,22))throw this.createFailedPredicateException("this.precpred(this.context, 22)");this.state=1023,this.match(r.PIPE),this.state=1024,this.ownedExpression(23)}break;case 7:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1025,!this.precpred(this.context,21))throw this.createFailedPredicateException("this.precpred(this.context, 21)");this.state=1026,this.match(r.AMP),this.state=1027,this.ownedExpression(22)}break;case 8:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1028,!this.precpred(this.context,20))throw this.createFailedPredicateException("this.precpred(this.context, 20)");this.state=1029,l=this.tokenStream.LA(1),(l-174&-32)===0&&(1<<l-174&8217)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1030,this.ownedExpression(21)}break;case 9:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1031,!this.precpred(this.context,19))throw this.createFailedPredicateException("this.precpred(this.context, 19)");this.state=1032,l=this.tokenStream.LA(1),(l-186&-32)===0&&(1<<l-186&5242889)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1033,this.ownedExpression(20)}break;case 10:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1034,!this.precpred(this.context,18))throw this.createFailedPredicateException("this.precpred(this.context, 18)");this.state=1035,this.match(r.DOT_DOT),this.state=1036,this.ownedExpression(19)}break;case 11:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1037,!this.precpred(this.context,17))throw this.createFailedPredicateException("this.precpred(this.context, 17)");this.state=1038,l=this.tokenStream.LA(1),l===199||l===201?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1039,this.ownedExpression(18)}break;case 12:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1040,!this.precpred(this.context,16))throw this.createFailedPredicateException("this.precpred(this.context, 16)");this.state=1041,l=this.tokenStream.LA(1),(l-194&-32)===0&&(1<<l-194&529)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1042,this.ownedExpression(17)}break;case 13:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1043,!this.precpred(this.context,15))throw this.createFailedPredicateException("this.precpred(this.context, 15)");this.state=1044,l=this.tokenStream.LA(1),l===179||l===213?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1045,this.ownedExpression(15)}break;case 14:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1046,!this.precpred(this.context,12))throw this.createFailedPredicateException("this.precpred(this.context, 12)");this.state=1047,l=this.tokenStream.LA(1),l===76||l===90||l===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1048,this.typeReference()}break;case 15:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1049,!this.precpred(this.context,11))throw this.createFailedPredicateException("this.precpred(this.context, 11)");this.state=1050,this.match(r.AS),this.state=1051,this.typeReference()}break;case 16:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1052,!this.precpred(this.context,10))throw this.createFailedPredicateException("this.precpred(this.context, 10)");this.state=1053,this.match(r.AT_AT),this.state=1054,this.typeReference()}break;case 17:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1055,!this.precpred(this.context,9))throw this.createFailedPredicateException("this.precpred(this.context, 9)");this.state=1056,this.match(r.META),this.state=1057,this.typeReference()}break;case 18:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1058,!this.precpred(this.context,8))throw this.createFailedPredicateException("this.precpred(this.context, 8)");this.state=1059,this.match(r.LBRACK),this.state=1061,this.errorHandler.sync(this),l=this.tokenStream.LA(1),(l===8||l===64||l===77||(l-105&-32)===0&&(1<<l-105&13)!==0||l===156||(l-191&-32)===0&&(1<<l-191&4236772773)!==0)&&(this.state=1060,this.sequenceExpressionList()),this.state=1063,this.match(r.RBRACK)}break;case 19:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1064,!this.precpred(this.context,7))throw this.createFailedPredicateException("this.precpred(this.context, 7)");this.state=1065,this.match(r.HASH),this.state=1066,this.match(r.LPAREN),this.state=1068,this.errorHandler.sync(this),l=this.tokenStream.LA(1),(l===8||l===64||l===77||(l-105&-32)===0&&(1<<l-105&13)!==0||l===156||(l-191&-32)===0&&(1<<l-191&4236772773)!==0)&&(this.state=1067,this.sequenceExpressionList()),this.state=1070,this.match(r.RPAREN)}break;case 20:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1071,!this.precpred(this.context,6))throw this.createFailedPredicateException("this.precpred(this.context, 6)");this.state=1072,this.argumentList()}break;case 21:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1073,!this.precpred(this.context,5))throw this.createFailedPredicateException("this.precpred(this.context, 5)");this.state=1074,this.match(r.DOT),this.state=1075,this.qualifiedName()}break;case 22:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1076,!this.precpred(this.context,4))throw this.createFailedPredicateException("this.precpred(this.context, 4)");this.state=1077,this.match(r.DOT_QUESTION),this.state=1078,this.bodyExpression()}break;case 23:{if(n=new ae(t,i),this.pushNewRecursionContext(n,o,r.RULE_ownedExpression),this.state=1079,!this.precpred(this.context,3))throw this.createFailedPredicateException("this.precpred(this.context, 3)");switch(this.state=1080,this.match(r.ARROW),this.state=1081,this.qualifiedName(),this.state=1084,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LBRACE:this.state=1082,this.bodyExpression();break;case r.LPAREN:this.state=1083,this.argumentList();break;default:throw new j(this)}}break}this.state=1090,this.errorHandler.sync(this),h=this.interpreter.adaptivePredict(this.tokenStream,5,this.context)}}}catch(h){if(h instanceof c)this.errorHandler.reportError(this,h),this.errorHandler.recover(this,h);else throw h}finally{this.unrollRecursionContexts(t)}return n}typeReference(){let e=new Qn(this.context,this.state);this.enterRule(e,2,r.RULE_typeReference);try{this.enterOuterAlt(e,1),this.state=1091,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceExpressionList(){let e=new $n(this.context,this.state);this.enterRule(e,4,r.RULE_sequenceExpressionList);let t;try{for(this.enterOuterAlt(e,1),this.state=1093,this.ownedExpression(0),this.state=1098,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1094,this.match(r.COMMA),this.state=1095,this.ownedExpression(0),this.state=1100,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}baseExpression(){let e=new qu(this.context,this.state);this.enterRule(e,6,r.RULE_baseExpression);let t;try{switch(this.state=1116,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,9,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1101,this.nullExpression();break;case 2:this.enterOuterAlt(e,2),this.state=1102,this.literalExpression();break;case 3:switch(this.enterOuterAlt(e,3),this.state=1103,this.qualifiedName(),this.state=1107,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,7,this.context)){case 1:this.state=1104,this.argumentList();break;case 2:this.state=1105,this.match(r.DOT),this.state=1106,this.match(r.METADATA);break}break;case 4:this.enterOuterAlt(e,4),this.state=1109,this.constructorExpression();break;case 5:this.enterOuterAlt(e,5),this.state=1110,this.bodyExpression();break;case 6:this.enterOuterAlt(e,6),this.state=1111,this.match(r.LPAREN),this.state=1113,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&13)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=1112,this.sequenceExpressionList()),this.state=1115,this.match(r.RPAREN);break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nullExpression(){let e=new ju(this.context,this.state);this.enterRule(e,8,r.RULE_nullExpression);try{switch(this.state=1121,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.NULL:this.enterOuterAlt(e,1),this.state=1118,this.match(r.NULL);break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=1119,this.match(r.LPAREN),this.state=1120,this.match(r.RPAREN);break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReferenceExpression(){let e=new Gu(this.context,this.state);this.enterRule(e,10,r.RULE_featureReferenceExpression);try{this.enterOuterAlt(e,1),this.state=1123,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataAccessExpression(){let e=new H3(this.context,this.state);this.enterRule(e,12,r.RULE_metadataAccessExpression);try{this.enterOuterAlt(e,1),this.state=1125,this.qualifiedName(),this.state=1126,this.match(r.DOT),this.state=1127,this.match(r.METADATA)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}invocationExpression(){let e=new B3(this.context,this.state);this.enterRule(e,14,r.RULE_invocationExpression);try{this.enterOuterAlt(e,1),this.state=1129,this.qualifiedName(),this.state=1130,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorExpression(){let e=new Wu(this.context,this.state);this.enterRule(e,16,r.RULE_constructorExpression);try{this.enterOuterAlt(e,1),this.state=1132,this.match(r.NEW),this.state=1133,this.qualifiedName(),this.state=1134,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyExpression(){let e=new Yn(this.context,this.state);this.enterRule(e,18,r.RULE_bodyExpression);try{this.enterOuterAlt(e,1),this.state=1136,this.match(r.LBRACE),this.state=1137,this.functionBodyPart(),this.state=1138,this.match(r.RBRACE)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentList(){let e=new li(this.context,this.state);this.enterRule(e,20,r.RULE_argumentList);try{this.enterOuterAlt(e,1);{switch(this.state=1140,this.match(r.LPAREN),this.state=1143,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,11,this.context)){case 1:this.state=1141,this.positionalArgumentList();break;case 2:this.state=1142,this.namedArgumentList();break}this.state=1145,this.match(r.RPAREN)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}positionalArgumentList(){let e=new zu(this.context,this.state);this.enterRule(e,22,r.RULE_positionalArgumentList);let t;try{for(this.enterOuterAlt(e,1),this.state=1147,this.ownedExpression(0),this.state=1152,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1148,this.match(r.COMMA),this.state=1149,this.ownedExpression(0),this.state=1154,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namedArgumentList(){let e=new Ku(this.context,this.state);this.enterRule(e,24,r.RULE_namedArgumentList);let t;try{for(this.enterOuterAlt(e,1),this.state=1155,this.namedArgument(),this.state=1160,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1156,this.match(r.COMMA),this.state=1157,this.namedArgument(),this.state=1162,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namedArgument(){let e=new Jn(this.context,this.state);this.enterRule(e,26,r.RULE_namedArgument);try{this.enterOuterAlt(e,1),this.state=1163,this.qualifiedName(),this.state=1164,this.match(r.EQ),this.state=1165,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalExpression(){let e=new sa(this.context,this.state);this.enterRule(e,28,r.RULE_literalExpression);try{switch(this.state=1172,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FALSE:case r.TRUE:this.enterOuterAlt(e,1),this.state=1167,this.literalBoolean();break;case r.DOUBLE_STRING:this.enterOuterAlt(e,2),this.state=1168,this.literalString();break;case r.INTEGER:this.enterOuterAlt(e,3),this.state=1169,this.literalInteger();break;case r.REAL:this.enterOuterAlt(e,4),this.state=1170,this.literalReal();break;case r.STAR:this.enterOuterAlt(e,5),this.state=1171,this.literalInfinity();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalBoolean(){let e=new Qu(this.context,this.state);this.enterRule(e,30,r.RULE_literalBoolean);let t;try{this.enterOuterAlt(e,1),this.state=1174,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}literalString(){let e=new $u(this.context,this.state);this.enterRule(e,32,r.RULE_literalString);try{this.enterOuterAlt(e,1),this.state=1176,this.match(r.DOUBLE_STRING)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalInteger(){let e=new Yu(this.context,this.state);this.enterRule(e,34,r.RULE_literalInteger);try{this.enterOuterAlt(e,1),this.state=1178,this.match(r.INTEGER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalReal(){let e=new Ju(this.context,this.state);this.enterRule(e,36,r.RULE_literalReal);try{this.enterOuterAlt(e,1),this.state=1180,this.match(r.REAL)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}literalInfinity(){let e=new Xu(this.context,this.state);this.enterRule(e,38,r.RULE_literalInfinity);try{this.enterOuterAlt(e,1),this.state=1182,this.match(r.STAR)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentMember(){let e=new Zu(this.context,this.state);this.enterRule(e,40,r.RULE_argumentMember);try{this.enterOuterAlt(e,1),this.state=1184,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}argumentExpressionMember(){let e=new ec(this.context,this.state);this.enterRule(e,42,r.RULE_argumentExpressionMember);try{this.enterOuterAlt(e,1),this.state=1186,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}name(){let e=new xt(this.context,this.state);this.enterRule(e,44,r.RULE_name);let t;try{this.enterOuterAlt(e,1),this.state=1188,t=this.tokenStream.LA(1),t===218||t===219?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}identification(){let e=new ve(this.context,this.state);this.enterRule(e,46,r.RULE_identification);try{switch(this.state=1200,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,15,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1190,this.match(r.LT),this.state=1191,this.name(),this.state=1192,this.match(r.GT),this.state=1193,this.name();break;case 2:this.enterOuterAlt(e,2),this.state=1195,this.match(r.LT),this.state=1196,this.name(),this.state=1197,this.match(r.GT);break;case 3:this.enterOuterAlt(e,3),this.state=1199,this.name();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}relationshipBody(){let e=new Ze(this.context,this.state);this.enterRule(e,48,r.RULE_relationshipBody);let t;try{switch(this.state=1219,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,18,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1202,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2);{for(this.state=1203,this.match(r.LBRACE),this.state=1207,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229124)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909228581)!==0||(t-101&-32)===0&&(1<<t-101&1259892783)!==0||(t-138&-32)===0&&(1<<t-138&37232361)!==0||(t-175&-32)===0&&(1<<t-175&2684756995)!==0||(t-210&-32)===0&&(1<<t-210&9091)!==0;)this.state=1204,this.relationshipOwnedElement(),this.state=1209,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1210,this.match(r.RBRACE)}break;case 3:this.enterOuterAlt(e,3);{for(this.state=1211,this.match(r.LBRACE),this.state=1215,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===30||t===54||(t-93&-32)===0&&(1<<t-93&517)!==0||t===131||(t-192&-32)===0&&(1<<t-192&2147745793)!==0;)this.state=1212,this.ownedAnnotation(),this.state=1217,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1218,this.match(r.RBRACE)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}relationshipOwnedElement(){let e=new aa(this.context,this.state);this.enterRule(e,50,r.RULE_relationshipOwnedElement);try{switch(this.state=1223,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,19,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1221,this.ownedRelatedElement();break;case 2:this.enterOuterAlt(e,2),this.state=1222,this.ownedAnnotation();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedRelatedElement(){let e=new tc(this.context,this.state);this.enterRule(e,52,r.RULE_ownedRelatedElement);try{switch(this.state=1227,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,20,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1225,this.nonFeatureElement();break;case 2:this.enterOuterAlt(e,2),this.state=1226,this.featureElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dependency(){let e=new oa(this.context,this.state);this.enterRule(e,54,r.RULE_dependency);let t;try{switch(this.state=1271,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,27,this.context)){case 1:this.enterOuterAlt(e,1);{for(this.state=1232,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1229,this.prefixMetadataAnnotation(),this.state=1234,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1235,this.match(r.DEPENDENCY),this.state=1240,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,23,this.context)===1&&(this.state=1237,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1236,this.identification()),this.state=1239,this.match(r.FROM)),this.state=1242,this.qualifiedName(),this.state=1247,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1243,this.match(r.COMMA),this.state=1244,this.qualifiedName(),this.state=1249,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1250,this.match(r.TO),this.state=1251,this.qualifiedName(),this.state=1256,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1252,this.match(r.COMMA),this.state=1253,this.qualifiedName(),this.state=1258,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1259,this.relationshipBody()}break;case 2:this.enterOuterAlt(e,2);{for(this.state=1264,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1261,this.prefixMetadataAnnotation(),this.state=1266,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1267,this.match(r.DEPENDENCY),this.state=1268,this.dependencyDeclaration(),this.state=1269,this.relationshipBody()}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}annotation(){let e=new Fr(this.context,this.state);this.enterRule(e,56,r.RULE_annotation);try{this.enterOuterAlt(e,1),this.state=1273,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedAnnotation(){let e=new Xn(this.context,this.state);this.enterRule(e,58,r.RULE_ownedAnnotation);try{this.enterOuterAlt(e,1),this.state=1275,this.annotatingElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}annotatingElement(){let e=new Bi(this.context,this.state);this.enterRule(e,60,r.RULE_annotatingElement);try{switch(this.state=1281,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COMMENT:case r.LOCALE:case r.REGULAR_COMMENT:this.enterOuterAlt(e,1),this.state=1277,this.comment();break;case r.DOC:this.enterOuterAlt(e,2),this.state=1278,this.documentation();break;case r.LANGUAGE:case r.REP:this.enterOuterAlt(e,3),this.state=1279,this.textualRepresentation();break;case r.METADATA:case r.HASH:case r.AT_SIGN:this.enterOuterAlt(e,4),this.state=1280,this.metadataFeature();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}comment(){let e=new rc(this.context,this.state);this.enterRule(e,62,r.RULE_comment);let t;try{this.enterOuterAlt(e,1);{if(this.state=1298,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===30&&(this.state=1283,this.match(r.COMMENT),this.state=1285,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1284,this.identification()),this.state=1296,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1))for(this.state=1287,this.match(r.ABOUT),this.state=1288,this.annotation(),this.state=1293,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1289,this.match(r.COMMA),this.state=1290,this.annotation(),this.state=1295,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1302,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===95&&(this.state=1300,this.match(r.LOCALE),this.state=1301,this.match(r.DOUBLE_STRING)),this.state=1304,this.match(r.REGULAR_COMMENT)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}documentation(){let e=new ic(this.context,this.state);this.enterRule(e,64,r.RULE_documentation);let t;try{this.enterOuterAlt(e,1),this.state=1306,this.match(r.DOC),this.state=1308,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1307,this.identification()),this.state=1312,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===95&&(this.state=1310,this.match(r.LOCALE),this.state=1311,this.match(r.DOUBLE_STRING)),this.state=1314,this.match(r.REGULAR_COMMENT)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}textualRepresentation(){let e=new nc(this.context,this.state);this.enterRule(e,66,r.RULE_textualRepresentation);let t;try{this.enterOuterAlt(e,1),this.state=1320,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===131&&(this.state=1316,this.match(r.REP),this.state=1318,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1317,this.identification())),this.state=1322,this.match(r.LANGUAGE),this.state=1323,this.match(r.DOUBLE_STRING),this.state=1324,this.match(r.REGULAR_COMMENT)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}rootNamespace(){let e=new _3(this.context,this.state);this.enterRule(e,68,r.RULE_rootNamespace);let t;try{this.enterOuterAlt(e,1);{for(this.state=1329,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3364135109)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=1326,this.packageBodyElement(),this.state=1331,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1332,this.match(r.EOF)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespace(){let e=new sc(this.context,this.state);this.enterRule(e,70,r.RULE_namespace);let t;try{this.enterOuterAlt(e,1);{for(this.state=1337,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1334,this.prefixMetadataMember(),this.state=1339,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1340,this.namespaceDeclaration(),this.state=1341,this.namespaceBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceDeclaration(){let e=new ac(this.context,this.state);this.enterRule(e,72,r.RULE_namespaceDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=1343,this.match(r.NAMESPACE),this.state=1345,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1344,this.identification())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceBody(){let e=new oc(this.context,this.state);this.enterRule(e,74,r.RULE_namespaceBody);let t;try{switch(this.state=1356,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=1347,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=1348,this.match(r.LBRACE),this.state=1352,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229252)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909244965)!==0||(t-101&-32)===0&&(1<<t-101&1274572847)!==0||(t-138&-32)===0&&(1<<t-138&37232361)!==0||(t-175&-32)===0&&(1<<t-175&2684756995)!==0||(t-210&-32)===0&&(1<<t-210&9091)!==0;)this.state=1349,this.namespaceBodyElement(),this.state=1354,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1355,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceBodyElement(){let e=new la(this.context,this.state);this.enterRule(e,76,r.RULE_namespaceBodyElement);try{switch(this.state=1361,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,43,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1358,this.namespaceMember();break;case 2:this.enterOuterAlt(e,2),this.state=1359,this.aliasMember();break;case 3:this.enterOuterAlt(e,3),this.state=1360,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}memberPrefix(){let e=new oe(this.context,this.state);this.enterRule(e,78,r.RULE_memberPrefix);let t;try{this.enterOuterAlt(e,1),this.state=1364,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0&&(this.state=1363,this.visibilityIndicator())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}visibilityIndicator(){let e=new ua(this.context,this.state);this.enterRule(e,80,r.RULE_visibilityIndicator);let t;try{this.enterOuterAlt(e,1),this.state=1366,t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceMember(){let e=new lc(this.context,this.state);this.enterRule(e,82,r.RULE_namespaceMember);try{switch(this.state=1370,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,45,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1368,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1369,this.namespaceFeatureMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureMember(){let e=new Zn(this.context,this.state);this.enterRule(e,84,r.RULE_nonFeatureMember);try{this.enterOuterAlt(e,1),this.state=1372,this.memberPrefix(),this.state=1373,this.memberElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceFeatureMember(){let e=new uc(this.context,this.state);this.enterRule(e,86,r.RULE_namespaceFeatureMember);try{this.enterOuterAlt(e,1),this.state=1375,this.memberPrefix(),this.state=1376,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}aliasMember(){let e=new ur(this.context,this.state);this.enterRule(e,88,r.RULE_aliasMember);let t;try{this.enterOuterAlt(e,1),this.state=1378,this.memberPrefix(),this.state=1379,this.match(r.ALIAS),this.state=1384,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===206&&(this.state=1380,this.match(r.LT),this.state=1381,this.name(),this.state=1382,this.match(r.GT)),this.state=1387,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===218||t===219)&&(this.state=1386,this.name()),this.state=1389,this.match(r.FOR),this.state=1390,this.qualifiedName(),this.state=1391,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}qualifiedName(){let e=new B(this.context,this.state);this.enterRule(e,90,r.RULE_qualifiedName);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=1395,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===193&&(this.state=1393,this.match(r.DOLLAR),this.state=1394,this.match(r.COLON_COLON)),this.state=1402,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=1397,this.name(),this.state=1398,this.match(r.COLON_COLON)),this.state=1404,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,49,this.context);this.state=1405,this.name()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}importRule(){let e=new zt(this.context,this.state);this.enterRule(e,92,r.RULE_importRule);let t;try{this.enterOuterAlt(e,1),this.state=1408,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-122&-32)===0&&(1<<t-122&7)!==0&&(this.state=1407,this.visibilityIndicator()),this.state=1410,this.match(r.IMPORT),this.state=1412,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1411,this.match(r.ALL)),this.state=1414,this.importDeclaration(),this.state=1415,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}importDeclaration(){let e=new cc(this.context,this.state);this.enterRule(e,94,r.RULE_importDeclaration);try{switch(this.state=1419,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,52,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1417,this.membershipImport();break;case 2:this.enterOuterAlt(e,2),this.state=1418,this.namespaceImport();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}membershipImport(){let e=new es(this.context,this.state);this.enterRule(e,96,r.RULE_membershipImport);let t;try{this.enterOuterAlt(e,1),this.state=1421,this.qualifiedName(),this.state=1424,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=1422,this.match(r.COLON_COLON),this.state=1423,this.match(r.STAR_STAR))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}namespaceImport(){let e=new ca(this.context,this.state);this.enterRule(e,98,r.RULE_namespaceImport);let t;try{switch(this.state=1434,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,55,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1426,this.qualifiedName(),this.state=1427,this.match(r.COLON_COLON),this.state=1428,this.match(r.STAR),this.state=1431,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=1429,this.match(r.COLON_COLON),this.state=1430,this.match(r.STAR_STAR));break;case 2:this.enterOuterAlt(e,2),this.state=1433,this.filterPackage();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackage(){let e=new hc(this.context,this.state);this.enterRule(e,100,r.RULE_filterPackage);let t;try{switch(this.state=1448,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,58,this.context)){case 1:this.enterOuterAlt(e,1);{this.state=1436,this.filterPackageImportDeclaration(),this.state=1438,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=1437,this.filterPackageMember(),this.state=1440,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===211)}break;case 2:this.enterOuterAlt(e,2);{this.state=1442,this.filterPackageImport(),this.state=1444,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=1443,this.filterPackageMember(),this.state=1446,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===211)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackageMember(){let e=new ha(this.context,this.state);this.enterRule(e,102,r.RULE_filterPackageMember);try{this.enterOuterAlt(e,1),this.state=1450,this.match(r.LBRACK),this.state=1451,this.ownedExpression(0),this.state=1452,this.match(r.RBRACK)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}memberElement(){let e=new dc(this.context,this.state);this.enterRule(e,104,r.RULE_memberElement);try{switch(this.state=1456,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,59,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1454,this.annotatingElement();break;case 2:this.enterOuterAlt(e,2),this.state=1455,this.nonFeatureElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureElement(){let e=new da(this.context,this.state);this.enterRule(e,106,r.RULE_nonFeatureElement);try{switch(this.state=1484,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,60,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1458,this.dependency();break;case 2:this.enterOuterAlt(e,2),this.state=1459,this.namespace();break;case 3:this.enterOuterAlt(e,3),this.state=1460,this.type_();break;case 4:this.enterOuterAlt(e,4),this.state=1461,this.classifier();break;case 5:this.enterOuterAlt(e,5),this.state=1462,this.dataType();break;case 6:this.enterOuterAlt(e,6),this.state=1463,this.class_();break;case 7:this.enterOuterAlt(e,7),this.state=1464,this.structure();break;case 8:this.enterOuterAlt(e,8),this.state=1465,this.metaclass();break;case 9:this.enterOuterAlt(e,9),this.state=1466,this.association();break;case 10:this.enterOuterAlt(e,10),this.state=1467,this.associationStructure();break;case 11:this.enterOuterAlt(e,11),this.state=1468,this.interaction();break;case 12:this.enterOuterAlt(e,12),this.state=1469,this.behavior();break;case 13:this.enterOuterAlt(e,13),this.state=1470,this.function_();break;case 14:this.enterOuterAlt(e,14),this.state=1471,this.predicate();break;case 15:this.enterOuterAlt(e,15),this.state=1472,this.multiplicity();break;case 16:this.enterOuterAlt(e,16),this.state=1473,this.package_();break;case 17:this.enterOuterAlt(e,17),this.state=1474,this.libraryPackage();break;case 18:this.enterOuterAlt(e,18),this.state=1475,this.specialization();break;case 19:this.enterOuterAlt(e,19),this.state=1476,this.conjugation();break;case 20:this.enterOuterAlt(e,20),this.state=1477,this.subclassification();break;case 21:this.enterOuterAlt(e,21),this.state=1478,this.disjoining();break;case 22:this.enterOuterAlt(e,22),this.state=1479,this.featureInverting();break;case 23:this.enterOuterAlt(e,23),this.state=1480,this.featureTyping();break;case 24:this.enterOuterAlt(e,24),this.state=1481,this.subsetting();break;case 25:this.enterOuterAlt(e,25),this.state=1482,this.redefinition();break;case 26:this.enterOuterAlt(e,26),this.state=1483,this.typeFeaturing();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureElement(){let e=new ui(this.context,this.state);this.enterRule(e,108,r.RULE_featureElement);try{switch(this.state=1496,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,61,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1486,this.feature();break;case 2:this.enterOuterAlt(e,2),this.state=1487,this.step();break;case 3:this.enterOuterAlt(e,3),this.state=1488,this.expression();break;case 4:this.enterOuterAlt(e,4),this.state=1489,this.booleanExpression();break;case 5:this.enterOuterAlt(e,5),this.state=1490,this.invariant();break;case 6:this.enterOuterAlt(e,6),this.state=1491,this.connector();break;case 7:this.enterOuterAlt(e,7),this.state=1492,this.bindingConnector();break;case 8:this.enterOuterAlt(e,8),this.state=1493,this.succession();break;case 9:this.enterOuterAlt(e,9),this.state=1494,this.flow();break;case 10:this.enterOuterAlt(e,10),this.state=1495,this.successionFlow();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}type_(){let e=new pc(this.context,this.state);this.enterRule(e,110,r.RULE_type);try{this.enterOuterAlt(e,1),this.state=1498,this.typePrefix(),this.state=1499,this.match(r.TYPE),this.state=1500,this.typeDeclaration(),this.state=1501,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typePrefix(){let e=new bt(this.context,this.state);this.enterRule(e,112,r.RULE_typePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=1504,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=1503,this.match(r.ABSTRACT)),this.state=1509,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=1506,this.prefixMetadataMember(),this.state=1511,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeDeclaration(){let e=new fc(this.context,this.state);this.enterRule(e,114,r.RULE_typeDeclaration);let t;try{this.enterOuterAlt(e,1);{this.state=1513,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1512,this.match(r.ALL)),this.state=1516,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1515,this.identification()),this.state=1519,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===211&&(this.state=1518,this.ownedMultiplicity()),this.state=1523,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do{switch(this.state=1523,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZES:case r.COLON_GT:this.state=1521,this.specializationPart();break;case r.CONJUGATES:case r.TILDE:this.state=1522,this.conjugationPart();break;default:throw new j(this)}this.state=1525,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}while(t===34||t===139||t===185||t===217);for(this.state=1530,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===50||t===52||t===86||t===160;)this.state=1527,this.typeRelationshipPart(),this.state=1532,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}specializationPart(){let e=new pa(this.context,this.state);this.enterRule(e,116,r.RULE_specializationPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1533,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1534,this.ownedSpecialization(),this.state=1539,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1535,this.match(r.COMMA),this.state=1536,this.ownedSpecialization(),this.state=1541,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}conjugationPart(){let e=new _i(this.context,this.state);this.enterRule(e,118,r.RULE_conjugationPart);let t;try{this.enterOuterAlt(e,1),this.state=1542,t=this.tokenStream.LA(1),t===34||t===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1543,this.ownedConjugation()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeRelationshipPart(){let e=new ci(this.context,this.state);this.enterRule(e,120,r.RULE_typeRelationshipPart);try{switch(this.state=1549,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DISJOINT:this.enterOuterAlt(e,1),this.state=1545,this.disjoiningPart();break;case r.UNIONS:this.enterOuterAlt(e,2),this.state=1546,this.unioningPart();break;case r.INTERSECTS:this.enterOuterAlt(e,3),this.state=1547,this.intersectingPart();break;case r.DIFFERENCES:this.enterOuterAlt(e,4),this.state=1548,this.differencingPart();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}disjoiningPart(){let e=new mc(this.context,this.state);this.enterRule(e,122,r.RULE_disjoiningPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1551,this.match(r.DISJOINT),this.state=1552,this.match(r.FROM),this.state=1553,this.ownedDisjoining(),this.state=1558,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1554,this.match(r.COMMA),this.state=1555,this.ownedDisjoining(),this.state=1560,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}unioningPart(){let e=new xc(this.context,this.state);this.enterRule(e,124,r.RULE_unioningPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1561,this.match(r.UNIONS),this.state=1562,this.unioning(),this.state=1567,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1563,this.match(r.COMMA),this.state=1564,this.unioning(),this.state=1569,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}intersectingPart(){let e=new bc(this.context,this.state);this.enterRule(e,126,r.RULE_intersectingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1570,this.match(r.INTERSECTS),this.state=1571,this.intersecting(),this.state=1576,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1572,this.match(r.COMMA),this.state=1573,this.intersecting(),this.state=1578,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}differencingPart(){let e=new gc(this.context,this.state);this.enterRule(e,128,r.RULE_differencingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1579,this.match(r.DIFFERENCES),this.state=1580,this.differencing(),this.state=1585,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1581,this.match(r.COMMA),this.state=1582,this.differencing(),this.state=1587,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeBody(){let e=new Be(this.context,this.state);this.enterRule(e,130,r.RULE_typeBody);let t;try{switch(this.state=1597,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=1588,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=1589,this.match(r.LBRACE),this.state=1593,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&4040229252)!==0||(t-33&-32)===0&&(1<<t-33&1085130343)!==0||(t-65&-32)===0&&(1<<t-65&1909244965)!==0||(t-97&-32)===0&&(1<<t-97&3213296369)!==0||(t-131&-32)===0&&(1<<t-131&470774913)!==0||(t-163&-32)===0&&(1<<t-163&1648373761)!==0||(t-204&-32)===0&&(1<<t-204&581829)!==0;)this.state=1590,this.typeBodyElement(),this.state=1595,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1596,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeBodyElement(){let e=new Vi(this.context,this.state);this.enterRule(e,132,r.RULE_typeBodyElement);try{switch(this.state=1603,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,78,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1599,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1600,this.featureMember();break;case 3:this.enterOuterAlt(e,3),this.state=1601,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=1602,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}specialization(){let e=new Rc(this.context,this.state);this.enterRule(e,134,r.RULE_specialization);let t;try{this.enterOuterAlt(e,1),this.state=1609,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=1605,this.match(r.SPECIALIZATION),this.state=1607,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1606,this.identification())),this.state=1611,this.match(r.SUBTYPE),this.state=1612,this.specificType(),this.state=1613,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1614,this.generalType(),this.state=1615,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSpecialization(){let e=new fa(this.context,this.state);this.enterRule(e,136,r.RULE_ownedSpecialization);try{this.enterOuterAlt(e,1),this.state=1617,this.generalType()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}specificType(){let e=new ts(this.context,this.state);this.enterRule(e,138,r.RULE_specificType);let t;try{for(this.enterOuterAlt(e,1),this.state=1619,this.qualifiedName(),this.state=1624,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1620,this.match(r.DOT),this.state=1621,this.qualifiedName(),this.state=1626,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}generalType(){let e=new hi(this.context,this.state);this.enterRule(e,140,r.RULE_generalType);let t;try{for(this.enterOuterAlt(e,1),this.state=1627,this.qualifiedName(),this.state=1632,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1628,this.match(r.DOT),this.state=1629,this.qualifiedName(),this.state=1634,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}conjugation(){let e=new yc(this.context,this.state);this.enterRule(e,142,r.RULE_conjugation);let t;try{this.enterOuterAlt(e,1);{for(this.state=1639,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===35&&(this.state=1635,this.match(r.CONJUGATION),this.state=1637,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1636,this.identification())),this.state=1641,this.match(r.CONJUGATE),this.state=1642,this.qualifiedName(),this.state=1647,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1643,this.match(r.DOT),this.state=1644,this.qualifiedName(),this.state=1649,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1650,t=this.tokenStream.LA(1),t===34||t===217?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1651,this.qualifiedName(),this.state=1656,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1652,this.match(r.DOT),this.state=1653,this.qualifiedName(),this.state=1658,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1659,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedConjugation(){let e=new Cc(this.context,this.state);this.enterRule(e,144,r.RULE_ownedConjugation);let t;try{for(this.enterOuterAlt(e,1),this.state=1661,this.qualifiedName(),this.state=1666,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1662,this.match(r.DOT),this.state=1663,this.qualifiedName(),this.state=1668,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}disjoining(){let e=new vc(this.context,this.state);this.enterRule(e,146,r.RULE_disjoining);let t;try{this.enterOuterAlt(e,1);{for(this.state=1673,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===51&&(this.state=1669,this.match(r.DISJOINING),this.state=1671,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1670,this.identification())),this.state=1675,this.match(r.DISJOINT),this.state=1676,this.qualifiedName(),this.state=1681,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1677,this.match(r.DOT),this.state=1678,this.qualifiedName(),this.state=1683,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=1684,this.match(r.FROM),this.state=1685,this.qualifiedName(),this.state=1690,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1686,this.match(r.DOT),this.state=1687,this.qualifiedName(),this.state=1692,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=1693,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedDisjoining(){let e=new ma(this.context,this.state);this.enterRule(e,148,r.RULE_ownedDisjoining);let t;try{for(this.enterOuterAlt(e,1),this.state=1695,this.qualifiedName(),this.state=1700,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1696,this.match(r.DOT),this.state=1697,this.qualifiedName(),this.state=1702,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}unioning(){let e=new xa(this.context,this.state);this.enterRule(e,150,r.RULE_unioning);let t;try{for(this.enterOuterAlt(e,1),this.state=1703,this.qualifiedName(),this.state=1708,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1704,this.match(r.DOT),this.state=1705,this.qualifiedName(),this.state=1710,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}intersecting(){let e=new ba(this.context,this.state);this.enterRule(e,152,r.RULE_intersecting);let t;try{for(this.enterOuterAlt(e,1),this.state=1711,this.qualifiedName(),this.state=1716,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1712,this.match(r.DOT),this.state=1713,this.qualifiedName(),this.state=1718,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}differencing(){let e=new ga(this.context,this.state);this.enterRule(e,154,r.RULE_differencing);let t;try{for(this.enterOuterAlt(e,1),this.state=1719,this.qualifiedName(),this.state=1724,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1720,this.match(r.DOT),this.state=1721,this.qualifiedName(),this.state=1726,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureMember(){let e=new Ec(this.context,this.state);this.enterRule(e,156,r.RULE_featureMember);try{switch(this.state=1729,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,96,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1727,this.typeFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=1728,this.ownedFeatureMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeFeatureMember(){let e=new Lc(this.context,this.state);this.enterRule(e,158,r.RULE_typeFeatureMember);try{this.enterOuterAlt(e,1),this.state=1731,this.memberPrefix(),this.state=1732,this.match(r.MEMBER),this.state=1733,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedFeatureMember(){let e=new Sc(this.context,this.state);this.enterRule(e,160,r.RULE_ownedFeatureMember);try{this.enterOuterAlt(e,1),this.state=1735,this.memberPrefix(),this.state=1736,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}classifier(){let e=new Pc(this.context,this.state);this.enterRule(e,162,r.RULE_classifier);try{this.enterOuterAlt(e,1),this.state=1738,this.typePrefix(),this.state=1739,this.match(r.CLASSIFIER),this.state=1740,this.classifierDeclaration(),this.state=1741,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}classifierDeclaration(){let e=new At(this.context,this.state);this.enterRule(e,164,r.RULE_classifierDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1744,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1743,this.match(r.ALL)),this.state=1747,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1746,this.identification()),this.state=1750,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===211&&(this.state=1749,this.ownedMultiplicity()),this.state=1754,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZES:case r.COLON_GT:this.state=1752,this.superclassingPart();break;case r.CONJUGATES:case r.TILDE:this.state=1753,this.conjugationPart();break;case r.DIFFERENCES:case r.DISJOINT:case r.INTERSECTS:case r.UNIONS:case r.SEMI:case r.LBRACE:break;default:break}for(this.state=1759,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===50||t===52||t===86||t===160;)this.state=1756,this.typeRelationshipPart(),this.state=1761,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}superclassingPart(){let e=new Tc(this.context,this.state);this.enterRule(e,166,r.RULE_superclassingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1762,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1763,this.ownedSubclassification(),this.state=1768,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1764,this.match(r.COMMA),this.state=1765,this.ownedSubclassification(),this.state=1770,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subclassification(){let e=new Ac(this.context,this.state);this.enterRule(e,168,r.RULE_subclassification);let t;try{this.enterOuterAlt(e,1),this.state=1775,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=1771,this.match(r.SPECIALIZATION),this.state=1773,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=1772,this.identification())),this.state=1777,this.match(r.SUBCLASSIFIER),this.state=1778,this.qualifiedName(),this.state=1779,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1780,this.qualifiedName(),this.state=1781,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSubclassification(){let e=new qi(this.context,this.state);this.enterRule(e,170,r.RULE_ownedSubclassification);try{this.enterOuterAlt(e,1),this.state=1783,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}feature(){let e=new Mc(this.context,this.state);this.enterRule(e,172,r.RULE_feature);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1799,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,108,this.context)){case 1:{switch(this.state=1785,this.featurePrefix(),this.state=1788,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FEATURE:this.state=1786,this.match(r.FEATURE);break;case r.HASH:this.state=1787,this.prefixMetadataMember();break;default:throw new j(this)}this.state=1791,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=1790,this.featureDeclaration())}break;case 2:{switch(this.state=1795,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,107,this.context)){case 1:this.state=1793,this.endFeaturePrefix();break;case 2:this.state=1794,this.basicFeaturePrefix();break}this.state=1797,this.featureDeclaration()}break}this.state=1802,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=1801,this.valuePart()),this.state=1804,this.typeBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}endFeaturePrefix(){let e=new Ra(this.context,this.state);this.enterRule(e,174,r.RULE_endFeaturePrefix);let t;try{this.enterOuterAlt(e,1),this.state=1807,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===39&&(this.state=1806,this.match(r.CONST)),this.state=1809,this.match(r.END)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}basicFeaturePrefix(){let e=new rs(this.context,this.state);this.enterRule(e,176,r.RULE_basicFeaturePrefix);let t;try{this.enterOuterAlt(e,1),this.state=1812,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===80||t===83||t===114)&&(this.state=1811,this.featureDirection()),this.state=1815,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===49&&(this.state=1814,this.match(r.DERIVED)),this.state=1818,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=1817,this.match(r.ABSTRACT)),this.state=1821,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===31||t===120)&&(this.state=1820,t=this.tokenStream.LA(1),t===31||t===120?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=1824,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===39||t===163)&&(this.state=1823,t=this.tokenStream.LA(1),t===39||t===163?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featurePrefix(){let e=new Ot(this.context,this.state);this.enterRule(e,178,r.RULE_featurePrefix);try{let t;this.enterOuterAlt(e,1);{switch(this.state=1830,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,116,this.context)){case 1:this.state=1826,this.endFeaturePrefix(),this.state=1827,this.ownedCrossFeatureMember();break;case 2:this.state=1829,this.basicFeaturePrefix();break}for(this.state=1835,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,117,this.context);t!==2&&t!==ee.INVALID_ALT_NUMBER;)t===1&&(this.state=1832,this.prefixMetadataMember()),this.state=1837,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,117,this.context)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossFeatureMember(){let e=new ya(this.context,this.state);this.enterRule(e,180,r.RULE_ownedCrossFeatureMember);try{this.enterOuterAlt(e,1),this.state=1838,this.ownedCrossFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossFeature(){let e=new Nc(this.context,this.state);this.enterRule(e,182,r.RULE_ownedCrossFeature);try{switch(this.state=1847,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,119,this.context)){case 1:this.enterOuterAlt(e,1),this.state=1840,this.basicFeaturePrefix(),this.state=1841,this.featureDeclaration();break;case 2:this.enterOuterAlt(e,2),this.state=1843,this.basicUsagePrefix(),this.state=1845,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,118,this.context)===1&&(this.state=1844,this.usageDeclaration());break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureDirection(){let e=new Ca(this.context,this.state);this.enterRule(e,184,r.RULE_featureDirection);let t;try{this.enterOuterAlt(e,1),this.state=1849,t=this.tokenStream.LA(1),t===80||t===83||t===114?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureDeclaration(){let e=new pt(this.context,this.state);this.enterRule(e,186,r.RULE_featureDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=1852,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=1851,this.match(r.ALL)),this.state=1861,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:case r.IDENTIFIER:case r.STRING:switch(this.state=1854,this.featureIdentification(),this.state=1857,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,121,this.context)){case 1:this.state=1855,this.featureSpecializationPart();break;case 2:this.state=1856,this.conjugationPart();break}break;case r.CROSSES:case r.DEFINED:case r.NONUNIQUE:case r.ORDERED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.LBRACK:this.state=1859,this.featureSpecializationPart();break;case r.CONJUGATES:case r.TILDE:this.state=1860,this.conjugationPart();break;default:throw new j(this)}for(this.state=1866,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t-27&-32)===0&&(1<<t-27&41943041)!==0||(t-66&-32)===0&&(1<<t-66&5242881)!==0||t===160;)this.state=1863,this.featureRelationshipPart(),this.state=1868,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureIdentification(){let e=new Uc(this.context,this.state);this.enterRule(e,188,r.RULE_featureIdentification);try{switch(this.state=1876,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:this.enterOuterAlt(e,1),this.state=1869,this.match(r.LT),this.state=1870,this.name(),this.state=1871,this.match(r.GT),this.state=1873,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,124,this.context)===1&&(this.state=1872,this.name());break;case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,2),this.state=1875,this.name();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureRelationshipPart(){let e=new va(this.context,this.state);this.enterRule(e,190,r.RULE_featureRelationshipPart);try{switch(this.state=1882,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DIFFERENCES:case r.DISJOINT:case r.INTERSECTS:case r.UNIONS:this.enterOuterAlt(e,1),this.state=1878,this.typeRelationshipPart();break;case r.CHAINS:this.enterOuterAlt(e,2),this.state=1879,this.chainingPart();break;case r.INVERSE:this.enterOuterAlt(e,3),this.state=1880,this.invertingPart();break;case r.FEATURED:this.enterOuterAlt(e,4),this.state=1881,this.typeFeaturingPart();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}chainingPart(){let e=new wc(this.context,this.state);this.enterRule(e,192,r.RULE_chainingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1884,this.match(r.CHAINS),this.state=1885,this.qualifiedName(),this.state=1890,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=1886,this.match(r.DOT),this.state=1887,this.qualifiedName(),this.state=1892,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}invertingPart(){let e=new Dc(this.context,this.state);this.enterRule(e,194,r.RULE_invertingPart);try{this.enterOuterAlt(e,1),this.state=1893,this.match(r.INVERSE),this.state=1894,this.match(r.OF),this.state=1895,this.ownedFeatureInverting()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeFeaturingPart(){let e=new Oc(this.context,this.state);this.enterRule(e,196,r.RULE_typeFeaturingPart);let t;try{for(this.enterOuterAlt(e,1),this.state=1897,this.match(r.FEATURED),this.state=1898,this.match(r.BY),this.state=1899,this.ownedTypeFeaturing(),this.state=1904,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1900,this.match(r.COMMA),this.state=1901,this.ownedTypeFeaturing(),this.state=1906,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureSpecializationPart(){let e=new ft(this.context,this.state);this.enterRule(e,198,r.RULE_featureSpecializationPart);try{let t;switch(this.state=1928,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CROSSES:case r.DEFINED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:this.enterOuterAlt(e,1);{this.state=1908,this.errorHandler.sync(this),t=1;do{if(t===1)this.state=1907,this.featureSpecialization();else throw new j(this);this.state=1910,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,129,this.context)}while(t!==2&&t!==ee.INVALID_ALT_NUMBER);for(this.state=1913,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,130,this.context)===1&&(this.state=1912,this.multiplicityPart()),this.state=1918,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,131,this.context);t!==2&&t!==ee.INVALID_ALT_NUMBER;)t===1&&(this.state=1915,this.featureSpecialization()),this.state=1920,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,131,this.context)}break;case r.NONUNIQUE:case r.ORDERED:case r.LBRACK:for(this.enterOuterAlt(e,2),this.state=1921,this.multiplicityPart(),this.state=1925,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,132,this.context);t!==2&&t!==ee.INVALID_ALT_NUMBER;)t===1&&(this.state=1922,this.featureSpecialization()),this.state=1927,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,132,this.context);break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityPart(){let e=new Ea(this.context,this.state);this.enterRule(e,200,r.RULE_multiplicityPart);try{switch(this.state=1951,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LBRACK:switch(this.enterOuterAlt(e,1),this.state=1930,this.ownedMultiplicity(),this.state=1939,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,136,this.context)){case 1:this.state=1931,this.match(r.ORDERED),this.state=1933,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,134,this.context)===1&&(this.state=1932,this.match(r.NONUNIQUE));break;case 2:this.state=1935,this.match(r.NONUNIQUE),this.state=1937,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,135,this.context)===1&&(this.state=1936,this.match(r.ORDERED));break}break;case r.NONUNIQUE:case r.ORDERED:switch(this.enterOuterAlt(e,2),this.state=1949,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ORDERED:this.state=1941,this.match(r.ORDERED),this.state=1943,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,137,this.context)===1&&(this.state=1942,this.match(r.NONUNIQUE));break;case r.NONUNIQUE:this.state=1945,this.match(r.NONUNIQUE),this.state=1947,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,138,this.context)===1&&(this.state=1946,this.match(r.ORDERED));break;default:throw new j(this)}break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureSpecialization(){let e=new cr(this.context,this.state);this.enterRule(e,202,r.RULE_featureSpecialization);try{switch(this.state=1958,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DEFINED:case r.TYPED:case r.COLON:this.enterOuterAlt(e,1),this.state=1953,this.typings();break;case r.SUBSETS:case r.COLON_GT:this.enterOuterAlt(e,2),this.state=1954,this.subsettings();break;case r.REFERENCES:case r.COLON_COLON_GT:this.enterOuterAlt(e,3),this.state=1955,this.references();break;case r.CROSSES:case r.FAT_ARROW:this.enterOuterAlt(e,4),this.state=1956,this.crosses();break;case r.REDEFINES:case r.COLON_GT_GT:this.enterOuterAlt(e,5),this.state=1957,this.redefinitions();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typings(){let e=new Ic(this.context,this.state);this.enterRule(e,204,r.RULE_typings);let t;try{for(this.enterOuterAlt(e,1),this.state=1960,this.typedBy(),this.state=1965,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1961,this.match(r.COMMA),this.state=1962,this.featureTyping(),this.state=1967,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typedBy(){let e=new kc(this.context,this.state);this.enterRule(e,206,r.RULE_typedBy);try{this.enterOuterAlt(e,1);{switch(this.state=1973,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=1968,this.match(r.COLON);break;case r.TYPED:this.state=1969,this.match(r.TYPED),this.state=1970,this.match(r.BY);break;case r.DEFINED:this.state=1971,this.match(r.DEFINED),this.state=1972,this.match(r.BY);break;default:throw new j(this)}this.state=1975,this.featureTyping()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subsettings(){let e=new Fc(this.context,this.state);this.enterRule(e,208,r.RULE_subsettings);let t;try{for(this.enterOuterAlt(e,1),this.state=1977,this.subsets(),this.state=1982,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1978,this.match(r.COMMA),this.state=1979,this.ownedSubsetting(),this.state=1984,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subsets(){let e=new La(this.context,this.state);this.enterRule(e,210,r.RULE_subsets);let t;try{this.enterOuterAlt(e,1),this.state=1985,t=this.tokenStream.LA(1),t===148||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1986,this.ownedSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}references(){let e=new Hc(this.context,this.state);this.enterRule(e,212,r.RULE_references);let t;try{this.enterOuterAlt(e,1),this.state=1988,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1989,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}crosses(){let e=new Bc(this.context,this.state);this.enterRule(e,214,r.RULE_crosses);let t;try{this.enterOuterAlt(e,1),this.state=1991,t=this.tokenStream.LA(1),t===42||t===188?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=1992,this.ownedCrossSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefinitions(){let e=new _c(this.context,this.state);this.enterRule(e,216,r.RULE_redefinitions);let t;try{for(this.enterOuterAlt(e,1),this.state=1994,this.redefines(),this.state=1999,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=1995,this.match(r.COMMA),this.state=1996,this.ownedRedefinition(),this.state=2001,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefines(){let e=new Vc(this.context,this.state);this.enterRule(e,218,r.RULE_redefines);let t;try{this.enterOuterAlt(e,1),this.state=2002,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2003,this.ownedRedefinition()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureTyping(){let e=new ji(this.context,this.state);this.enterRule(e,220,r.RULE_featureTyping);let t;try{switch(this.state=2023,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SPECIALIZATION:case r.TYPING:this.enterOuterAlt(e,1);{switch(this.state=2009,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2005,this.match(r.SPECIALIZATION),this.state=2007,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2006,this.identification())),this.state=2011,this.match(r.TYPING),this.state=2012,this.qualifiedName(),this.state=2016,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=2013,this.match(r.COLON);break;case r.TYPED:this.state=2014,this.match(r.TYPED),this.state=2015,this.match(r.BY);break;default:throw new j(this)}this.state=2018,this.generalType(),this.state=2019,this.relationshipBody()}break;case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,2),this.state=2021,this.ownedFeatureTyping();break;case r.TILDE:this.enterOuterAlt(e,3),this.state=2022,this.conjugatedPortTyping();break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureTyping(){let e=new Hr(this.context,this.state);this.enterRule(e,222,r.RULE_ownedFeatureTyping);let t;try{for(this.enterOuterAlt(e,1),this.state=2025,this.qualifiedName(),this.state=2030,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2026,this.match(r.DOT),this.state=2027,this.qualifiedName(),this.state=2032,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}subsetting(){let e=new qc(this.context,this.state);this.enterRule(e,224,r.RULE_subsetting);let t;try{this.enterOuterAlt(e,1),this.state=2037,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2033,this.match(r.SPECIALIZATION),this.state=2035,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2034,this.identification())),this.state=2039,this.match(r.SUBSET),this.state=2040,this.specificType(),this.state=2041,t=this.tokenStream.LA(1),t===148||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2042,this.generalType(),this.state=2043,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedSubsetting(){let e=new is(this.context,this.state);this.enterRule(e,226,r.RULE_ownedSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2045,this.qualifiedName(),this.state=2050,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2046,this.match(r.DOT),this.state=2047,this.qualifiedName(),this.state=2052,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedReferenceSubsetting(){let e=new et(this.context,this.state);this.enterRule(e,228,r.RULE_ownedReferenceSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2053,this.qualifiedName(),this.state=2058,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2054,this.match(r.DOT),this.state=2055,this.qualifiedName(),this.state=2060,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedCrossSubsetting(){let e=new jc(this.context,this.state);this.enterRule(e,230,r.RULE_ownedCrossSubsetting);let t;try{for(this.enterOuterAlt(e,1),this.state=2061,this.qualifiedName(),this.state=2066,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2062,this.match(r.DOT),this.state=2063,this.qualifiedName(),this.state=2068,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}redefinition(){let e=new Gc(this.context,this.state);this.enterRule(e,232,r.RULE_redefinition);let t;try{this.enterOuterAlt(e,1),this.state=2073,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===138&&(this.state=2069,this.match(r.SPECIALIZATION),this.state=2071,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2070,this.identification())),this.state=2075,this.match(r.REDEFINITION),this.state=2076,this.specificType(),this.state=2077,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2078,this.generalType(),this.state=2079,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedRedefinition(){let e=new di(this.context,this.state);this.enterRule(e,234,r.RULE_ownedRedefinition);let t;try{for(this.enterOuterAlt(e,1),this.state=2081,this.qualifiedName(),this.state=2086,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2082,this.match(r.DOT),this.state=2083,this.qualifiedName(),this.state=2088,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChain(){let e=new Wc(this.context,this.state);this.enterRule(e,236,r.RULE_ownedFeatureChain);let t;try{switch(this.state=2097,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,160,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2089,this.featureChain();break;case 2:this.enterOuterAlt(e,2);{this.state=2090,this.ownedFeatureChaining(),this.state=2093,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2091,this.match(r.DOT),this.state=2092,this.ownedFeatureChaining(),this.state=2095,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===202)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}featureChain(){let e=new Sa(this.context,this.state);this.enterRule(e,238,r.RULE_featureChain);let t;try{this.enterOuterAlt(e,1);{this.state=2099,this.ownedFeatureChaining(),this.state=2102,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2100,this.match(r.DOT),this.state=2101,this.ownedFeatureChaining(),this.state=2104,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===202)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChaining(){let e=new Br(this.context,this.state);this.enterRule(e,240,r.RULE_ownedFeatureChaining);try{this.enterOuterAlt(e,1),this.state=2106,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureInverting(){let e=new zc(this.context,this.state);this.enterRule(e,242,r.RULE_featureInverting);let t;try{this.enterOuterAlt(e,1);{for(this.state=2112,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===89&&(this.state=2108,this.match(r.INVERTING),this.state=2110,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2109,this.identification())),this.state=2114,this.match(r.INVERSE),this.state=2115,this.qualifiedName(),this.state=2120,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2116,this.match(r.DOT),this.state=2117,this.qualifiedName(),this.state=2122,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=2123,this.match(r.OF),this.state=2124,this.qualifiedName(),this.state=2129,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2125,this.match(r.DOT),this.state=2126,this.qualifiedName(),this.state=2131,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2132,this.relationshipBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureInverting(){let e=new Kc(this.context,this.state);this.enterRule(e,244,r.RULE_ownedFeatureInverting);let t;try{for(this.enterOuterAlt(e,1),this.state=2134,this.qualifiedName(),this.state=2139,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2135,this.match(r.DOT),this.state=2136,this.qualifiedName(),this.state=2141,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}typeFeaturing(){let e=new Qc(this.context,this.state);this.enterRule(e,246,r.RULE_typeFeaturing);let t;try{this.enterOuterAlt(e,1),this.state=2142,this.match(r.FEATURING),this.state=2147,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,168,this.context)===1&&(this.state=2144,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2143,this.identification()),this.state=2146,this.match(r.OF)),this.state=2149,this.qualifiedName(),this.state=2150,this.match(r.BY),this.state=2151,this.qualifiedName(),this.state=2152,this.relationshipBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedTypeFeaturing(){let e=new Pa(this.context,this.state);this.enterRule(e,248,r.RULE_ownedTypeFeaturing);try{this.enterOuterAlt(e,1),this.state=2154,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dataType(){let e=new $c(this.context,this.state);this.enterRule(e,250,r.RULE_dataType);try{this.enterOuterAlt(e,1),this.state=2156,this.typePrefix(),this.state=2157,this.match(r.DATATYPE),this.state=2158,this.classifierDeclaration(),this.state=2159,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}class_(){let e=new Yc(this.context,this.state);this.enterRule(e,252,r.RULE_class);try{this.enterOuterAlt(e,1),this.state=2161,this.typePrefix(),this.state=2162,this.match(r.CLASS),this.state=2163,this.classifierDeclaration(),this.state=2164,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structure(){let e=new Jc(this.context,this.state);this.enterRule(e,254,r.RULE_structure);try{this.enterOuterAlt(e,1),this.state=2166,this.typePrefix(),this.state=2167,this.match(r.STRUCT),this.state=2168,this.classifierDeclaration(),this.state=2169,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}association(){let e=new Xc(this.context,this.state);this.enterRule(e,256,r.RULE_association);try{this.enterOuterAlt(e,1),this.state=2171,this.typePrefix(),this.state=2172,this.match(r.ASSOC),this.state=2173,this.classifierDeclaration(),this.state=2174,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}associationStructure(){let e=new Zc(this.context,this.state);this.enterRule(e,258,r.RULE_associationStructure);try{this.enterOuterAlt(e,1),this.state=2176,this.typePrefix(),this.state=2177,this.match(r.ASSOC),this.state=2178,this.match(r.STRUCT),this.state=2179,this.classifierDeclaration(),this.state=2180,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connector(){let e=new e1(this.context,this.state);this.enterRule(e,260,r.RULE_connector);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2182,this.featurePrefix(),this.state=2183,this.match(r.CONNECTOR),this.state=2191,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,171,this.context)){case 1:this.state=2185,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2184,this.featureDeclaration()),this.state=2188,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2187,this.valuePart());break;case 2:this.state=2190,this.connectorDeclaration();break}this.state=2193,this.typeBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorDeclaration(){let e=new t1(this.context,this.state);this.enterRule(e,262,r.RULE_connectorDeclaration);try{switch(this.state=2197,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,172,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2195,this.binaryConnectorDeclaration();break;case 2:this.enterOuterAlt(e,2),this.state=2196,this.naryConnectorDeclaration();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryConnectorDeclaration(){let e=new r1(this.context,this.state);this.enterRule(e,264,r.RULE_binaryConnectorDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2207,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,175,this.context)){case 1:this.state=2200,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2199,this.featureDeclaration()),this.state=2202,this.match(r.FROM);break;case 2:this.state=2203,this.match(r.ALL),this.state=2205,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2204,this.match(r.FROM));break}this.state=2209,this.connectorEndMember(),this.state=2210,this.match(r.TO),this.state=2211,this.connectorEndMember()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}naryConnectorDeclaration(){let e=new i1(this.context,this.state);this.enterRule(e,266,r.RULE_naryConnectorDeclaration);let t;try{this.enterOuterAlt(e,1);{for(this.state=2214,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||(t-34&-32)===0&&(1<<t-34&8449)!==0||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||(t-217&-32)===0&&(1<<t-217&7)!==0)&&(this.state=2213,this.featureDeclaration()),this.state=2216,this.match(r.LPAREN),this.state=2217,this.connectorEndMember(),this.state=2218,this.match(r.COMMA),this.state=2219,this.connectorEndMember(),this.state=2224,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2220,this.match(r.COMMA),this.state=2221,this.connectorEndMember(),this.state=2226,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2227,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorEndMember(){let e=new Ve(this.context,this.state);this.enterRule(e,268,r.RULE_connectorEndMember);try{this.enterOuterAlt(e,1),this.state=2229,this.connectorEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectorEnd(){let e=new n1(this.context,this.state);this.enterRule(e,270,r.RULE_connectorEnd);let t;try{this.enterOuterAlt(e,1),this.state=2232,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===211&&(this.state=2231,this.ownedCrossMultiplicityMember()),this.state=2237,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,179,this.context)===1&&(this.state=2234,this.name(),this.state=2235,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2239,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedCrossMultiplicityMember(){let e=new Ta(this.context,this.state);this.enterRule(e,272,r.RULE_ownedCrossMultiplicityMember);try{this.enterOuterAlt(e,1),this.state=2241,this.ownedCrossMultiplicity()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedCrossMultiplicity(){let e=new s1(this.context,this.state);this.enterRule(e,274,r.RULE_ownedCrossMultiplicity);try{this.enterOuterAlt(e,1),this.state=2243,this.ownedMultiplicity()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bindingConnector(){let e=new a1(this.context,this.state);this.enterRule(e,276,r.RULE_bindingConnector);try{this.enterOuterAlt(e,1),this.state=2245,this.featurePrefix(),this.state=2246,this.match(r.BINDING),this.state=2247,this.bindingConnectorDeclaration(),this.state=2248,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bindingConnectorDeclaration(){let e=new o1(this.context,this.state);this.enterRule(e,278,r.RULE_bindingConnectorDeclaration);let t;try{switch(this.state=2270,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,184,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2250,this.featureDeclaration(),this.state=2256,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2251,this.match(r.OF),this.state=2252,this.connectorEndMember(),this.state=2253,this.match(r.EQ),this.state=2254,this.connectorEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2259,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2258,this.match(r.ALL)),this.state=2268,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===111||(t-193&-32)===0&&(1<<t-193&100925441)!==0)&&(this.state=2262,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2261,this.match(r.OF)),this.state=2264,this.connectorEndMember(),this.state=2265,this.match(r.EQ),this.state=2266,this.connectorEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}succession(){let e=new l1(this.context,this.state);this.enterRule(e,280,r.RULE_succession);try{this.enterOuterAlt(e,1),this.state=2272,this.featurePrefix(),this.state=2273,this.match(r.SUCCESSION),this.state=2274,this.successionDeclaration(),this.state=2275,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionDeclaration(){let e=new u1(this.context,this.state);this.enterRule(e,282,r.RULE_successionDeclaration);let t;try{switch(this.state=2297,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,189,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2277,this.featureDeclaration(),this.state=2283,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===69&&(this.state=2278,this.match(r.FIRST),this.state=2279,this.connectorEndMember(),this.state=2280,this.match(r.THEN),this.state=2281,this.connectorEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2286,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2285,this.match(r.ALL)),this.state=2295,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===69||(t-193&-32)===0&&(1<<t-193&100925441)!==0)&&(this.state=2289,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===69&&(this.state=2288,this.match(r.FIRST)),this.state=2291,this.connectorEndMember(),this.state=2292,this.match(r.THEN),this.state=2293,this.connectorEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}behavior(){let e=new c1(this.context,this.state);this.enterRule(e,284,r.RULE_behavior);try{this.enterOuterAlt(e,1),this.state=2299,this.typePrefix(),this.state=2300,this.match(r.BEHAVIOR),this.state=2301,this.classifierDeclaration(),this.state=2302,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}step(){let e=new h1(this.context,this.state);this.enterRule(e,286,r.RULE_step);let t;try{this.enterOuterAlt(e,1),this.state=2304,this.featurePrefix(),this.state=2305,this.match(r.STEP),this.state=2306,this.featureDeclaration(),this.state=2308,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2307,this.valuePart()),this.state=2310,this.typeBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}function_(){let e=new d1(this.context,this.state);this.enterRule(e,288,r.RULE_function);try{this.enterOuterAlt(e,1),this.state=2312,this.typePrefix(),this.state=2313,this.match(r.FUNCTION),this.state=2314,this.classifierDeclaration(),this.state=2315,this.functionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionBody(){let e=new pi(this.context,this.state);this.enterRule(e,290,r.RULE_functionBody);try{switch(this.state=2322,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2317,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2),this.state=2318,this.match(r.LBRACE),this.state=2319,this.functionBodyPart(),this.state=2320,this.match(r.RBRACE);break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionBodyPart(){let e=new ns(this.context,this.state);this.enterRule(e,292,r.RULE_functionBodyPart);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=2328,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,193,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;){if(i===1)switch(this.state=2326,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,192,this.context)){case 1:this.state=2324,this.typeBodyElement();break;case 2:this.state=2325,this.returnFeatureMember();break}this.state=2330,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,193,this.context)}this.state=2332,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=2331,this.resultExpressionMember())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}returnFeatureMember(){let e=new Aa(this.context,this.state);this.enterRule(e,294,r.RULE_returnFeatureMember);try{this.enterOuterAlt(e,1),this.state=2334,this.memberPrefix(),this.state=2335,this.match(r.RETURN),this.state=2336,this.featureElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}resultExpressionMember(){let e=new ss(this.context,this.state);this.enterRule(e,296,r.RULE_resultExpressionMember);try{this.enterOuterAlt(e,1),this.state=2338,this.memberPrefix(),this.state=2339,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expression(){let e=new p1(this.context,this.state);this.enterRule(e,298,r.RULE_expression);let t;try{this.enterOuterAlt(e,1),this.state=2341,this.featurePrefix(),this.state=2342,this.match(r.EXPR),this.state=2343,this.featureDeclaration(),this.state=2345,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2344,this.valuePart()),this.state=2347,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}predicate(){let e=new f1(this.context,this.state);this.enterRule(e,300,r.RULE_predicate);try{this.enterOuterAlt(e,1),this.state=2349,this.typePrefix(),this.state=2350,this.match(r.PREDICATE),this.state=2351,this.classifierDeclaration(),this.state=2352,this.functionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}booleanExpression(){let e=new m1(this.context,this.state);this.enterRule(e,302,r.RULE_booleanExpression);let t;try{this.enterOuterAlt(e,1),this.state=2354,this.featurePrefix(),this.state=2355,this.match(r.BOOL),this.state=2356,this.featureDeclaration(),this.state=2358,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2357,this.valuePart()),this.state=2360,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}invariant(){let e=new x1(this.context,this.state);this.enterRule(e,304,r.RULE_invariant);let t;try{this.enterOuterAlt(e,1),this.state=2362,this.featurePrefix(),this.state=2363,this.match(r.INV),this.state=2365,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===64||t===156)&&(this.state=2364,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2367,this.featureDeclaration(),this.state=2369,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2368,this.valuePart()),this.state=2371,this.functionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedExpressionMember(){let e=new b1(this.context,this.state);this.enterRule(e,306,r.RULE_ownedExpressionMember);try{this.enterOuterAlt(e,1),this.state=2373,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataReference(){let e=new V3(this.context,this.state);this.enterRule(e,308,r.RULE_metadataReference);try{this.enterOuterAlt(e,1),this.state=2375,this.elementReferenceMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeReferenceMember(){let e=new q3(this.context,this.state);this.enterRule(e,310,r.RULE_typeReferenceMember);try{this.enterOuterAlt(e,1),this.state=2377,this.typeReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}typeResultMember(){let e=new j3(this.context,this.state);this.enterRule(e,312,r.RULE_typeResultMember);try{this.enterOuterAlt(e,1),this.state=2379,this.typeReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}referenceTyping(){let e=new g1(this.context,this.state);this.enterRule(e,314,r.RULE_referenceTyping);try{this.enterOuterAlt(e,1),this.state=2381,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyResultMember(){let e=new G3(this.context,this.state);this.enterRule(e,316,r.RULE_emptyResultMember);try{this.enterOuterAlt(e,1),this.state=2383,this.emptyFeature_()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceOperatorExpression(){let e=new W3(this.context,this.state);this.enterRule(e,318,r.RULE_sequenceOperatorExpression);try{this.enterOuterAlt(e,1),this.state=2385,this.ownedExpressionMember(),this.state=2386,this.match(r.COMMA),this.state=2387,this.sequenceExpressionListMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sequenceExpressionListMember(){let e=new R1(this.context,this.state);this.enterRule(e,320,r.RULE_sequenceExpressionListMember);try{this.enterOuterAlt(e,1),this.state=2389,this.sequenceExpressionList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgumentMember(){let e=new z3(this.context,this.state);this.enterRule(e,322,r.RULE_bodyArgumentMember);try{this.enterOuterAlt(e,1),this.state=2391,this.bodyArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgument(){let e=new y1(this.context,this.state);this.enterRule(e,324,r.RULE_bodyArgument);try{this.enterOuterAlt(e,1),this.state=2393,this.bodyArgumentValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}bodyArgumentValue(){let e=new C1(this.context,this.state);this.enterRule(e,326,r.RULE_bodyArgumentValue);try{this.enterOuterAlt(e,1),this.state=2395,this.bodyExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgumentMember(){let e=new K3(this.context,this.state);this.enterRule(e,328,r.RULE_functionReferenceArgumentMember);try{this.enterOuterAlt(e,1),this.state=2397,this.functionReferenceArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgument(){let e=new v1(this.context,this.state);this.enterRule(e,330,r.RULE_functionReferenceArgument);try{this.enterOuterAlt(e,1),this.state=2399,this.functionReferenceArgumentValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceArgumentValue(){let e=new E1(this.context,this.state);this.enterRule(e,332,r.RULE_functionReferenceArgumentValue);try{this.enterOuterAlt(e,1),this.state=2401,this.functionReferenceExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceExpression(){let e=new L1(this.context,this.state);this.enterRule(e,334,r.RULE_functionReferenceExpression);try{this.enterOuterAlt(e,1),this.state=2403,this.functionReferenceMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReferenceMember(){let e=new S1(this.context,this.state);this.enterRule(e,336,r.RULE_functionReferenceMember);try{this.enterOuterAlt(e,1),this.state=2405,this.functionReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}functionReference(){let e=new P1(this.context,this.state);this.enterRule(e,338,r.RULE_functionReference);try{this.enterOuterAlt(e,1),this.state=2407,this.referenceTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureChainMember(){let e=new Gi(this.context,this.state);this.enterRule(e,340,r.RULE_featureChainMember);let t;try{for(this.enterOuterAlt(e,1),this.state=2409,this.qualifiedName(),this.state=2414,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2410,this.match(r.DOT),this.state=2411,this.qualifiedName(),this.state=2416,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedFeatureChainMember(){let e=new Q3(this.context,this.state);this.enterRule(e,342,r.RULE_ownedFeatureChainMember);try{switch(this.state=2419,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,200,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2417,this.featureChain();break;case 2:this.enterOuterAlt(e,2),this.state=2418,this.ownedFeatureChain();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReferenceMember(){let e=new $3(this.context,this.state);this.enterRule(e,344,r.RULE_featureReferenceMember);try{this.enterOuterAlt(e,1),this.state=2421,this.featureReference()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureReference(){let e=new T1(this.context,this.state);this.enterRule(e,346,r.RULE_featureReference);try{this.enterOuterAlt(e,1),this.state=2423,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}elementReferenceMember(){let e=new A1(this.context,this.state);this.enterRule(e,348,r.RULE_elementReferenceMember);try{this.enterOuterAlt(e,1),this.state=2425,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorResultMember(){let e=new Y3(this.context,this.state);this.enterRule(e,350,r.RULE_constructorResultMember);try{this.enterOuterAlt(e,1),this.state=2427,this.constructorResult()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constructorResult(){let e=new M1(this.context,this.state);this.enterRule(e,352,r.RULE_constructorResult);try{this.enterOuterAlt(e,1),this.state=2429,this.argumentList()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}instantiatedTypeMember(){let e=new J3(this.context,this.state);this.enterRule(e,354,r.RULE_instantiatedTypeMember);let t;try{for(this.enterOuterAlt(e,1),this.state=2431,this.qualifiedName(),this.state=2436,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2432,this.match(r.DOT),this.state=2433,this.qualifiedName(),this.state=2438,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}instantiatedTypeReference(){let e=new X3(this.context,this.state);this.enterRule(e,356,r.RULE_instantiatedTypeReference);try{this.enterOuterAlt(e,1),this.state=2439,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namedArgumentMember(){let e=new Z3(this.context,this.state);this.enterRule(e,358,r.RULE_namedArgumentMember);try{this.enterOuterAlt(e,1),this.state=2441,this.namedArgument()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}parameterRedefinition(){let e=new e4(this.context,this.state);this.enterRule(e,360,r.RULE_parameterRedefinition);try{this.enterOuterAlt(e,1),this.state=2443,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionBodyMember(){let e=new t4(this.context,this.state);this.enterRule(e,362,r.RULE_expressionBodyMember);try{this.enterOuterAlt(e,1),this.state=2445,this.expressionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionBody(){let e=new N1(this.context,this.state);this.enterRule(e,364,r.RULE_expressionBody);try{this.enterOuterAlt(e,1),this.state=2447,this.match(r.LBRACE),this.state=2448,this.functionBodyPart(),this.state=2449,this.match(r.RBRACE)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}booleanValue(){let e=new r4(this.context,this.state);this.enterRule(e,366,r.RULE_booleanValue);let t;try{this.enterOuterAlt(e,1),this.state=2451,t=this.tokenStream.LA(1),t===64||t===156?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}realValue(){let e=new i4(this.context,this.state);this.enterRule(e,368,r.RULE_realValue);let t;try{switch(this.state=2459,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOT:case r.INTEGER:this.enterOuterAlt(e,1),this.state=2454,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===221&&(this.state=2453,this.match(r.INTEGER)),this.state=2456,this.match(r.DOT),this.state=2457,t=this.tokenStream.LA(1),t===221||t===222?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this);break;case r.REAL:this.enterOuterAlt(e,2),this.state=2458,this.match(r.REAL);break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interaction(){let e=new U1(this.context,this.state);this.enterRule(e,370,r.RULE_interaction);try{this.enterOuterAlt(e,1),this.state=2461,this.typePrefix(),this.state=2462,this.match(r.INTERACTION),this.state=2463,this.classifierDeclaration(),this.state=2464,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flow(){let e=new w1(this.context,this.state);this.enterRule(e,372,r.RULE_flow);try{this.enterOuterAlt(e,1),this.state=2466,this.featurePrefix(),this.state=2467,this.match(r.FLOW),this.state=2468,this.flowDeclaration(),this.state=2469,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionFlow(){let e=new D1(this.context,this.state);this.enterRule(e,374,r.RULE_successionFlow);try{this.enterOuterAlt(e,1),this.state=2471,this.featurePrefix(),this.state=2472,this.match(r.SUCCESSION),this.state=2473,this.match(r.FLOW),this.state=2474,this.flowDeclaration(),this.state=2475,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowDeclaration(){let e=new Wi(this.context,this.state);this.enterRule(e,376,r.RULE_flowDeclaration);let t;try{switch(this.state=2516,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,212,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2477,this.featureDeclaration(),this.state=2479,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2478,this.valuePart()),this.state=2483,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2481,this.match(r.OF),this.state=2482,this.payloadFeatureMember()),this.state=2490,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2485,this.match(r.FROM),this.state=2486,this.flowEndMember(),this.state=2487,this.match(r.TO),this.state=2488,this.flowEndMember());break;case 2:this.enterOuterAlt(e,2),this.state=2493,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===8&&(this.state=2492,this.match(r.ALL)),this.state=2495,this.flowEndMember(),this.state=2496,this.match(r.TO),this.state=2497,this.flowEndMember();break;case 3:this.enterOuterAlt(e,3),this.state=2500,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=2499,this.usageDeclaration()),this.state=2503,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2502,this.valuePart()),this.state=2507,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=2505,this.match(r.OF),this.state=2506,this.flowPayloadFeatureMember()),this.state=2514,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=2509,this.match(r.FROM),this.state=2510,this.flowEndMember(),this.state=2511,this.match(r.TO),this.state=2512,this.flowEndMember());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadFeatureMember(){let e=new O1(this.context,this.state);this.enterRule(e,378,r.RULE_payloadFeatureMember);try{this.enterOuterAlt(e,1),this.state=2518,this.payloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}payloadFeature(){let e=new as(this.context,this.state);this.enterRule(e,380,r.RULE_payloadFeature);let t;try{switch(this.state=2539,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,218,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2521,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2520,this.identification()),this.state=2523,this.valuePart();break;case 2:this.enterOuterAlt(e,2),this.state=2525,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2524,this.identification()),this.state=2527,this.payloadFeatureSpecializationPart(),this.state=2529,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2528,this.valuePart());break;case 3:this.enterOuterAlt(e,3),this.state=2531,this.ownedFeatureTyping(),this.state=2533,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===211&&(this.state=2532,this.ownedMultiplicity());break;case 4:this.enterOuterAlt(e,4),this.state=2535,this.ownedMultiplicity(),this.state=2537,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-193&-32)===0&&(1<<t-193&100663297)!==0&&(this.state=2536,this.ownedFeatureTyping());break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadFeatureSpecializationPart(){let e=new Ma(this.context,this.state);this.enterRule(e,382,r.RULE_payloadFeatureSpecializationPart);let t;try{let i;switch(this.state=2561,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CROSSES:case r.DEFINED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:this.enterOuterAlt(e,1);{this.state=2542,this.errorHandler.sync(this),i=1;do{if(i===1)this.state=2541,this.featureSpecialization();else throw new j(this);this.state=2544,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,219,this.context)}while(i!==2&&i!==ee.INVALID_ALT_NUMBER);for(this.state=2547,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===106||t===113||t===211)&&(this.state=2546,this.multiplicityPart()),this.state=2552,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=2549,this.featureSpecialization(),this.state=2554,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}break;case r.NONUNIQUE:case r.ORDERED:case r.LBRACK:this.enterOuterAlt(e,2);{this.state=2555,this.multiplicityPart(),this.state=2557,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=2556,this.featureSpecialization(),this.state=2559,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowEndMember(){let e=new Na(this.context,this.state);this.enterRule(e,384,r.RULE_flowEndMember);try{this.enterOuterAlt(e,1),this.state=2563,this.flowEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowEnd(){let e=new I1(this.context,this.state);this.enterRule(e,386,r.RULE_flowEnd);let t;try{for(this.enterOuterAlt(e,1),this.state=2565,this.qualifiedName(),this.state=2570,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===202;)this.state=2566,this.match(r.DOT),this.state=2567,this.qualifiedName(),this.state=2572,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowFeatureMember(){let e=new n4(this.context,this.state);this.enterRule(e,388,r.RULE_flowFeatureMember);try{this.enterOuterAlt(e,1),this.state=2573,this.flowFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowFeature(){let e=new k1(this.context,this.state);this.enterRule(e,390,r.RULE_flowFeature);try{this.enterOuterAlt(e,1),this.state=2575,this.flowFeatureRedefinition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowFeatureRedefinition(){let e=new F1(this.context,this.state);this.enterRule(e,392,r.RULE_flowFeatureRedefinition);try{this.enterOuterAlt(e,1),this.state=2577,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}valuePart(){let e=new Ue(this.context,this.state);this.enterRule(e,394,r.RULE_valuePart);try{this.enterOuterAlt(e,1),this.state=2579,this.featureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureValue(){let e=new H1(this.context,this.state);this.enterRule(e,396,r.RULE_featureValue);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2587,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.EQ:this.state=2581,this.match(r.EQ);break;case r.COLON_EQ:this.state=2582,this.match(r.COLON_EQ);break;case r.DEFAULT:this.state=2583,this.match(r.DEFAULT),this.state=2585,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===184||t===207)&&(this.state=2584,t=this.tokenStream.LA(1),t===184||t===207?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this));break;default:throw new j(this)}this.state=2589,this.ownedExpression(0)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}multiplicity(){let e=new B1(this.context,this.state);this.enterRule(e,398,r.RULE_multiplicity);try{switch(this.state=2593,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,227,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2591,this.multiplicitySubset();break;case 2:this.enterOuterAlt(e,2),this.state=2592,this.multiplicityRange();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicitySubset(){let e=new _1(this.context,this.state);this.enterRule(e,400,r.RULE_multiplicitySubset);let t;try{this.enterOuterAlt(e,1),this.state=2595,this.match(r.MULTIPLICITY),this.state=2597,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2596,this.identification()),this.state=2599,this.subsets(),this.state=2600,this.typeBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}multiplicityRange(){let e=new V1(this.context,this.state);this.enterRule(e,402,r.RULE_multiplicityRange);let t;try{this.enterOuterAlt(e,1),this.state=2602,this.match(r.MULTIPLICITY),this.state=2604,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2603,this.identification()),this.state=2606,this.multiplicityBounds(),this.state=2607,this.typeBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ownedMultiplicity(){let e=new _r(this.context,this.state);this.enterRule(e,404,r.RULE_ownedMultiplicity);try{this.enterOuterAlt(e,1),this.state=2609,this.ownedMultiplicityRange()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}ownedMultiplicityRange(){let e=new q1(this.context,this.state);this.enterRule(e,406,r.RULE_ownedMultiplicityRange);try{this.enterOuterAlt(e,1),this.state=2611,this.multiplicityBounds()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityBounds(){let e=new Ua(this.context,this.state);this.enterRule(e,408,r.RULE_multiplicityBounds);try{this.enterOuterAlt(e,1),this.state=2613,this.match(r.LBRACK),this.state=2617,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,230,this.context)===1&&(this.state=2614,this.multiplicityExpressionMember(),this.state=2615,this.match(r.DOT_DOT)),this.state=2619,this.multiplicityExpressionMember(),this.state=2620,this.match(r.RBRACK)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}multiplicityExpressionMember(){let e=new wa(this.context,this.state);this.enterRule(e,410,r.RULE_multiplicityExpressionMember);try{switch(this.enterOuterAlt(e,1),this.state=2624,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.FALSE:case r.TRUE:case r.STAR:case r.DOUBLE_STRING:case r.INTEGER:case r.REAL:this.state=2622,this.literalExpression();break;case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=2623,this.featureReferenceExpression();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metaclass(){let e=new j1(this.context,this.state);this.enterRule(e,412,r.RULE_metaclass);try{this.enterOuterAlt(e,1),this.state=2626,this.typePrefix(),this.state=2627,this.match(r.METACLASS),this.state=2628,this.classifierDeclaration(),this.state=2629,this.typeBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataAnnotation(){let e=new Da(this.context,this.state);this.enterRule(e,414,r.RULE_prefixMetadataAnnotation);try{switch(this.state=2635,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,232,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2631,this.match(r.HASH),this.state=2632,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(e,2),this.state=2633,this.match(r.HASH),this.state=2634,this.prefixMetadataUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataMember(){let e=new tt(this.context,this.state);this.enterRule(e,416,r.RULE_prefixMetadataMember);try{switch(this.state=2641,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,233,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2637,this.match(r.HASH),this.state=2638,this.prefixMetadataFeature();break;case 2:this.enterOuterAlt(e,2),this.state=2639,this.match(r.HASH),this.state=2640,this.prefixMetadataUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}prefixMetadataFeature(){let e=new Oa(this.context,this.state);this.enterRule(e,418,r.RULE_prefixMetadataFeature);try{this.enterOuterAlt(e,1),this.state=2643,this.ownedFeatureTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataFeature(){let e=new G1(this.context,this.state);this.enterRule(e,420,r.RULE_metadataFeature);let t;try{this.enterOuterAlt(e,1);{for(this.state=2648,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2645,this.prefixMetadataMember(),this.state=2650,this.errorHandler.sync(this),t=this.tokenStream.LA(1);if(this.state=2651,t=this.tokenStream.LA(1),t===102||t===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=2652,this.metadataFeatureDeclaration(),this.state=2662,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1)for(this.state=2653,this.match(r.ABOUT),this.state=2654,this.annotation(),this.state=2659,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2655,this.match(r.COMMA),this.state=2656,this.annotation(),this.state=2661,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2664,this.metadataBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataFeatureDeclaration(){let e=new W1(this.context,this.state);this.enterRule(e,422,r.RULE_metadataFeatureDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=2674,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,239,this.context)){case 1:switch(this.state=2667,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2666,this.identification()),this.state=2672,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=2669,this.match(r.COLON);break;case r.TYPED:this.state=2670,this.match(r.TYPED),this.state=2671,this.match(r.BY);break;default:throw new j(this)}break}this.state=2676,this.ownedFeatureTyping()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBody(){let e=new zi(this.context,this.state);this.enterRule(e,424,r.RULE_metadataBody);let t;try{switch(this.state=2698,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,243,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2678,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2);{for(this.state=2679,this.match(r.LBRACE),this.state=2683,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1880162436)!==0||(t-33&-32)===0&&(1<<t-33&2917381)!==0||(t-65&-32)===0&&(1<<t-65&1904755717)!==0||(t-101&-32)===0&&(1<<t-101&1139818511)!==0||(t-138&-32)===0&&(1<<t-138&2624201)!==0||(t-176&-32)===0&&(1<<t-176&196609)!==0||(t-210&-32)===0&&(1<<t-210&9089)!==0;)this.state=2680,this.metadataBodyElement(),this.state=2685,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2686,this.match(r.RBRACE)}break;case 3:this.enterOuterAlt(e,3);{for(this.state=2687,this.match(r.LBRACE),this.state=2694,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1174932628)!==0||(t-32&-32)===0&&(1<<t-32&71369249)!==0||(t-70&-32)===0&&(1<<t-70&60854785)!==0||(t-102&-32)===0&&(1<<t-102&3002245377)!==0||(t-141&-32)===0&&(1<<t-141&857735171)!==0||(t-176&-32)===0&&(1<<t-176&196609)!==0||(t-210&-32)===0&&(1<<t-210&8961)!==0;){switch(this.state=2692,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,241,this.context)){case 1:this.state=2688,this.definitionMember();break;case 2:this.state=2689,this.metadataBodyUsageMember();break;case 3:this.state=2690,this.aliasMember();break;case 4:this.state=2691,this.importRule();break}this.state=2696,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}this.state=2697,this.match(r.RBRACE)}break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBodyElement(){let e=new Ia(this.context,this.state);this.enterRule(e,426,r.RULE_metadataBodyElement);try{switch(this.state=2704,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,244,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2700,this.nonFeatureMember();break;case 2:this.enterOuterAlt(e,2),this.state=2701,this.metadataBodyFeatureMember();break;case 3:this.enterOuterAlt(e,3),this.state=2702,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=2703,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyFeatureMember(){let e=new z1(this.context,this.state);this.enterRule(e,428,r.RULE_metadataBodyFeatureMember);try{this.enterOuterAlt(e,1),this.state=2706,this.metadataBodyFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyFeature(){let e=new K1(this.context,this.state);this.enterRule(e,430,r.RULE_metadataBodyFeature);let t;try{this.enterOuterAlt(e,1),this.state=2709,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===65&&(this.state=2708,this.match(r.FEATURE)),this.state=2712,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===125||t===176)&&(this.state=2711,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2714,this.ownedRedefinition(),this.state=2716,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=2715,this.featureSpecializationPart()),this.state=2719,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2718,this.valuePart()),this.state=2721,this.metadataBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}package_(){let e=new ka(this.context,this.state);this.enterRule(e,432,r.RULE_package);let t;try{this.enterOuterAlt(e,1);{for(this.state=2726,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2723,this.prefixMetadataMember(),this.state=2728,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2729,this.packageDeclaration(),this.state=2730,this.packageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}libraryPackage(){let e=new Fa(this.context,this.state);this.enterRule(e,434,r.RULE_libraryPackage);let t;try{this.enterOuterAlt(e,1);{for(this.state=2733,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===141&&(this.state=2732,this.match(r.STANDARD)),this.state=2735,this.match(r.LIBRARY),this.state=2739,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2736,this.prefixMetadataMember(),this.state=2741,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2742,this.packageDeclaration(),this.state=2743,this.packageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}packageDeclaration(){let e=new Ha(this.context,this.state);this.enterRule(e,436,r.RULE_packageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=2745,this.match(r.PACKAGE),this.state=2747,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2746,this.identification())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}packageBody(){let e=new Ba(this.context,this.state);this.enterRule(e,438,r.RULE_packageBody);let t;try{switch(this.state=2758,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2749,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=2750,this.match(r.LBRACE),this.state=2754,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3364135109)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=2751,this.packageBodyElement(),this.state=2756,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2757,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}elementFilterMember(){let e=new os(this.context,this.state);this.enterRule(e,440,r.RULE_elementFilterMember);try{this.enterOuterAlt(e,1),this.state=2760,this.memberPrefix(),this.state=2761,this.match(r.FILTER),this.state=2762,this.ownedExpression(0),this.state=2763,this.match(r.SEMI)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}dependencyDeclaration(){let e=new Q1(this.context,this.state);this.enterRule(e,442,r.RULE_dependencyDeclaration);let t;try{this.enterOuterAlt(e,1);{for(this.state=2769,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,256,this.context)===1&&(this.state=2766,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2765,this.identification()),this.state=2768,this.match(r.FROM)),this.state=2771,this.qualifiedName(),this.state=2776,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2772,this.match(r.COMMA),this.state=2773,this.qualifiedName(),this.state=2778,this.errorHandler.sync(this),t=this.tokenStream.LA(1);for(this.state=2779,this.match(r.TO),this.state=2780,this.qualifiedName(),this.state=2785,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=2781,this.match(r.COMMA),this.state=2782,this.qualifiedName(),this.state=2787,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}annotatingMember(){let e=new _a(this.context,this.state);this.enterRule(e,444,r.RULE_annotatingMember);try{this.enterOuterAlt(e,1),this.state=2788,this.annotatingElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}packageBodyElement(){let e=new Ki(this.context,this.state);this.enterRule(e,446,r.RULE_packageBodyElement);try{switch(this.state=2794,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,259,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2790,this.packageMember();break;case 2:this.enterOuterAlt(e,2),this.state=2791,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=2792,this.aliasMember();break;case 4:this.enterOuterAlt(e,4),this.state=2793,this.importRule();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}packageMember(){let e=new $1(this.context,this.state);this.enterRule(e,448,r.RULE_packageMember);try{switch(this.enterOuterAlt(e,1),this.state=2796,this.memberPrefix(),this.state=2799,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,260,this.context)){case 1:this.state=2797,this.definitionElement();break;case 2:this.state=2798,this.usageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionElement(){let e=new ls(this.context,this.state);this.enterRule(e,450,r.RULE_definitionElement);try{switch(this.state=2831,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,261,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2801,this.package_();break;case 2:this.enterOuterAlt(e,2),this.state=2802,this.libraryPackage();break;case 3:this.enterOuterAlt(e,3),this.state=2803,this.annotatingElement();break;case 4:this.enterOuterAlt(e,4),this.state=2804,this.dependency();break;case 5:this.enterOuterAlt(e,5),this.state=2805,this.attributeDefinition();break;case 6:this.enterOuterAlt(e,6),this.state=2806,this.enumerationDefinition();break;case 7:this.enterOuterAlt(e,7),this.state=2807,this.occurrenceDefinition();break;case 8:this.enterOuterAlt(e,8),this.state=2808,this.individualDefinition();break;case 9:this.enterOuterAlt(e,9),this.state=2809,this.itemDefinition();break;case 10:this.enterOuterAlt(e,10),this.state=2810,this.partDefinition();break;case 11:this.enterOuterAlt(e,11),this.state=2811,this.connectionDefinition();break;case 12:this.enterOuterAlt(e,12),this.state=2812,this.flowDefinition();break;case 13:this.enterOuterAlt(e,13),this.state=2813,this.interfaceDefinition();break;case 14:this.enterOuterAlt(e,14),this.state=2814,this.portDefinition();break;case 15:this.enterOuterAlt(e,15),this.state=2815,this.actionDefinition();break;case 16:this.enterOuterAlt(e,16),this.state=2816,this.calculationDefinition();break;case 17:this.enterOuterAlt(e,17),this.state=2817,this.stateDefinition();break;case 18:this.enterOuterAlt(e,18),this.state=2818,this.constraintDefinition();break;case 19:this.enterOuterAlt(e,19),this.state=2819,this.requirementDefinition();break;case 20:this.enterOuterAlt(e,20),this.state=2820,this.concernDefinition();break;case 21:this.enterOuterAlt(e,21),this.state=2821,this.caseDefinition();break;case 22:this.enterOuterAlt(e,22),this.state=2822,this.analysisCaseDefinition();break;case 23:this.enterOuterAlt(e,23),this.state=2823,this.verificationCaseDefinition();break;case 24:this.enterOuterAlt(e,24),this.state=2824,this.useCaseDefinition();break;case 25:this.enterOuterAlt(e,25),this.state=2825,this.viewDefinition();break;case 26:this.enterOuterAlt(e,26),this.state=2826,this.viewpointDefinition();break;case 27:this.enterOuterAlt(e,27),this.state=2827,this.renderingDefinition();break;case 28:this.enterOuterAlt(e,28),this.state=2828,this.metadataDefinition();break;case 29:this.enterOuterAlt(e,29),this.state=2829,this.allocationDefinition();break;case 30:this.enterOuterAlt(e,30),this.state=2830,this.extendedDefinition();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageElement(){let e=new Va(this.context,this.state);this.enterRule(e,452,r.RULE_usageElement);try{switch(this.state=2835,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,262,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2833,this.nonOccurrenceUsageElement();break;case 2:this.enterOuterAlt(e,2),this.state=2834,this.occurrenceUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}basicDefinitionPrefix(){let e=new Qi(this.context,this.state);this.enterRule(e,454,r.RULE_basicDefinitionPrefix);let t;try{this.enterOuterAlt(e,1),this.state=2837,t=this.tokenStream.LA(1),t===2||t===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionExtensionKeyword(){let e=new gt(this.context,this.state);this.enterRule(e,456,r.RULE_definitionExtensionKeyword);try{this.enterOuterAlt(e,1),this.state=2839,this.prefixMetadataMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionPrefix(){let e=new qa(this.context,this.state);this.enterRule(e,458,r.RULE_definitionPrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=2842,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=2841,this.basicDefinitionPrefix()),this.state=2847,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2844,this.definitionExtensionKeyword(),this.state=2849,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definition(){let e=new Rt(this.context,this.state);this.enterRule(e,460,r.RULE_definition);try{this.enterOuterAlt(e,1),this.state=2850,this.definitionDeclaration(),this.state=2851,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}definitionDeclaration(){let e=new rt(this.context,this.state);this.enterRule(e,462,r.RULE_definitionDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=2854,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=2853,this.identification()),this.state=2857,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===139||t===185)&&(this.state=2856,this.subclassificationPart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBody(){let e=new fi(this.context,this.state);this.enterRule(e,464,r.RULE_definitionBody);let t;try{switch(this.state=2868,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=2859,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=2860,this.match(r.LBRACE),this.state=2864,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=2861,this.definitionBodyItem(),this.state=2866,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2867,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBodyItem(){let e=new mi(this.context,this.state);this.enterRule(e,466,r.RULE_definitionBodyItem);let t;try{switch(this.state=2880,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,270,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2870,this.importRule();break;case 2:this.enterOuterAlt(e,2),this.state=2871,this.memberPrefix(),this.state=2872,this.definitionBodyItemContent();break;case 3:this.enterOuterAlt(e,3),this.state=2875,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=2874,this.sourceSuccessionMember()),this.state=2877,this.memberPrefix(),this.state=2878,this.occurrenceUsageElement();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionBodyItemContent(){let e=new Y1(this.context,this.state);this.enterRule(e,468,r.RULE_definitionBodyItemContent);let t;try{switch(this.state=2900,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,273,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2882,this.match(r.ALIAS),this.state=2887,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===206&&(this.state=2883,this.match(r.LT),this.state=2884,this.name(),this.state=2885,this.match(r.GT)),this.state=2890,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===218||t===219)&&(this.state=2889,this.name()),this.state=2892,this.match(r.FOR),this.state=2893,this.qualifiedName(),this.state=2894,this.relationshipBody();break;case 2:this.enterOuterAlt(e,2),this.state=2896,this.match(r.VARIANT),this.state=2897,this.variantUsageElement();break;case 3:this.enterOuterAlt(e,3),this.state=2898,this.definitionElement();break;case 4:this.enterOuterAlt(e,4),this.state=2899,this.nonOccurrenceUsageElement();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}definitionMember(){let e=new $i(this.context,this.state);this.enterRule(e,470,r.RULE_definitionMember);try{this.enterOuterAlt(e,1),this.state=2902,this.memberPrefix(),this.state=2903,this.definitionElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantUsageMember(){let e=new ja(this.context,this.state);this.enterRule(e,472,r.RULE_variantUsageMember);try{this.enterOuterAlt(e,1),this.state=2905,this.memberPrefix(),this.state=2906,this.match(r.VARIANT),this.state=2907,this.variantUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonOccurrenceUsageMember(){let e=new J1(this.context,this.state);this.enterRule(e,474,r.RULE_nonOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=2909,this.memberPrefix(),this.state=2910,this.nonOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsageMember(){let e=new s4(this.context,this.state);this.enterRule(e,476,r.RULE_occurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=2912,this.memberPrefix(),this.state=2913,this.occurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structureUsageMember(){let e=new X1(this.context,this.state);this.enterRule(e,478,r.RULE_structureUsageMember);try{this.enterOuterAlt(e,1),this.state=2915,this.memberPrefix(),this.state=2916,this.structureUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}behaviorUsageMember(){let e=new Ga(this.context,this.state);this.enterRule(e,480,r.RULE_behaviorUsageMember);try{this.enterOuterAlt(e,1),this.state=2918,this.memberPrefix(),this.state=2919,this.behaviorUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}refPrefix(){let e=new Yi(this.context,this.state);this.enterRule(e,482,r.RULE_refPrefix);let t;try{this.enterOuterAlt(e,1),this.state=2922,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===80||t===83||t===114)&&(this.state=2921,this.featureDirection()),this.state=2925,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===49&&(this.state=2924,this.match(r.DERIVED)),this.state=2928,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=2927,t=this.tokenStream.LA(1),t===2||t===165?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=2931,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===40&&(this.state=2930,this.match(r.CONSTANT))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}basicUsagePrefix(){let e=new xi(this.context,this.state);this.enterRule(e,484,r.RULE_basicUsagePrefix);try{this.enterOuterAlt(e,1),this.state=2933,this.refPrefix(),this.state=2935,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,278,this.context)===1&&(this.state=2934,this.match(r.REF))}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}endUsagePrefix(){let e=new us(this.context,this.state);this.enterRule(e,486,r.RULE_endUsagePrefix);try{this.enterOuterAlt(e,1),this.state=2937,this.match(r.END),this.state=2938,this.ownedCrossFeatureMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageExtensionKeyword(){let e=new pe(this.context,this.state);this.enterRule(e,488,r.RULE_usageExtensionKeyword);try{this.enterOuterAlt(e,1),this.state=2940,this.prefixMetadataMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}unextendedUsagePrefix(){let e=new Wa(this.context,this.state);this.enterRule(e,490,r.RULE_unextendedUsagePrefix);try{switch(this.state=2944,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.END:this.enterOuterAlt(e,1),this.state=2942,this.endUsagePrefix();break;case r.ABSTRACT:case r.ATTRIBUTE:case r.BIND:case r.BINDING:case r.CONSTANT:case r.DERIVED:case r.ENUM:case r.FIRST:case r.IN:case r.INOUT:case r.OUT:case r.REF:case r.SUCCESSION:case r.VARIATION:case r.HASH:this.enterOuterAlt(e,2),this.state=2943,this.basicUsagePrefix();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usagePrefix(){let e=new Ji(this.context,this.state);this.enterRule(e,492,r.RULE_usagePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=2946,this.unextendedUsagePrefix(),this.state=2950,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=2947,this.usageExtensionKeyword(),this.state=2952,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usage(){let e=new qe(this.context,this.state);this.enterRule(e,494,r.RULE_usage);let t;try{this.enterOuterAlt(e,1),this.state=2954,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=2953,this.usageDeclaration()),this.state=2956,this.usageCompletion()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usageDeclaration(){let e=new be(this.context,this.state);this.enterRule(e,496,r.RULE_usageDeclaration);try{switch(this.state=2963,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.LT:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=2958,this.identification(),this.state=2960,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,282,this.context)===1&&(this.state=2959,this.featureSpecializationPart());break;case r.CROSSES:case r.DEFINED:case r.NONUNIQUE:case r.ORDERED:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.LBRACK:this.enterOuterAlt(e,2),this.state=2962,this.featureSpecializationPart();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}usageCompletion(){let e=new cs(this.context,this.state);this.enterRule(e,498,r.RULE_usageCompletion);let t;try{this.enterOuterAlt(e,1),this.state=2966,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=2965,this.valuePart()),this.state=2968,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}usageBody(){let e=new Kt(this.context,this.state);this.enterRule(e,500,r.RULE_usageBody);try{this.enterOuterAlt(e,1),this.state=2970,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultReferenceUsage(){let e=new Z1(this.context,this.state);this.enterRule(e,502,r.RULE_defaultReferenceUsage);try{this.enterOuterAlt(e,1),this.state=2972,this.refPrefix(),this.state=2973,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}referenceUsage(){let e=new hs(this.context,this.state);this.enterRule(e,504,r.RULE_referenceUsage);try{this.enterOuterAlt(e,1);{switch(this.state=2977,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.END:this.state=2975,this.endUsagePrefix();break;case r.ABSTRACT:case r.CONSTANT:case r.DERIVED:case r.IN:case r.INOUT:case r.OUT:case r.REF:case r.VARIATION:this.state=2976,this.refPrefix();break;default:throw new j(this)}this.state=2979,this.match(r.REF),this.state=2980,this.usage()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}endFeatureUsage(){let e=new e0(this.context,this.state);this.enterRule(e,506,r.RULE_endFeatureUsage);try{this.enterOuterAlt(e,1),this.state=2982,this.endUsagePrefix(),this.state=2983,this.featureDeclaration(),this.state=2984,this.usageCompletion()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantReference(){let e=new t0(this.context,this.state);this.enterRule(e,508,r.RULE_variantReference);let t;try{this.enterOuterAlt(e,1);{for(this.state=2986,this.ownedReferenceSubsetting(),this.state=2990,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=2987,this.featureSpecialization(),this.state=2992,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=2993,this.usageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nonOccurrenceUsageElement(){let e=new ds(this.context,this.state);this.enterRule(e,510,r.RULE_nonOccurrenceUsageElement);try{switch(this.state=3003,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,287,this.context)){case 1:this.enterOuterAlt(e,1),this.state=2995,this.referenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=2996,this.endFeatureUsage();break;case 3:this.enterOuterAlt(e,3),this.state=2997,this.attributeUsage();break;case 4:this.enterOuterAlt(e,4),this.state=2998,this.enumerationUsage();break;case 5:this.enterOuterAlt(e,5),this.state=2999,this.bindingConnectorAsUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3e3,this.successionAsUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3001,this.extendedUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3002,this.defaultReferenceUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsageElement(){let e=new ps(this.context,this.state);this.enterRule(e,512,r.RULE_occurrenceUsageElement);try{switch(this.state=3007,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,288,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3005,this.structureUsageElement();break;case 2:this.enterOuterAlt(e,2),this.state=3006,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}structureUsageElement(){let e=new fs(this.context,this.state);this.enterRule(e,514,r.RULE_structureUsageElement);try{switch(this.state=3024,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,289,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3009,this.occurrenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3010,this.individualUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3011,this.portionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3012,this.eventOccurrenceUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3013,this.itemUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3014,this.partUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3015,this.viewUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3016,this.renderingUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3017,this.portUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3018,this.connectionUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3019,this.interfaceUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3020,this.allocationUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3021,this.message();break;case 14:this.enterOuterAlt(e,14),this.state=3022,this.flowUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3023,this.successionFlowUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}behaviorUsageElement(){let e=new Xi(this.context,this.state);this.enterRule(e,516,r.RULE_behaviorUsageElement);try{switch(this.state=3042,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,290,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3026,this.actionUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3027,this.calculationUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3028,this.stateUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3029,this.constraintUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3030,this.requirementUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3031,this.concernUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3032,this.caseUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3033,this.analysisCaseUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3034,this.verificationCaseUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3035,this.useCaseUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3036,this.viewpointUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3037,this.performActionUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3038,this.exhibitStateUsage();break;case 14:this.enterOuterAlt(e,14),this.state=3039,this.includeUseCaseUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3040,this.assertConstraintUsage();break;case 16:this.enterOuterAlt(e,16),this.state=3041,this.satisfyRequirementUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}variantUsageElement(){let e=new za(this.context,this.state);this.enterRule(e,518,r.RULE_variantUsageElement);try{switch(this.state=3065,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,291,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3044,this.variantReference();break;case 2:this.enterOuterAlt(e,2),this.state=3045,this.referenceUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3046,this.attributeUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3047,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3048,this.successionAsUsage();break;case 6:this.enterOuterAlt(e,6),this.state=3049,this.occurrenceUsage();break;case 7:this.enterOuterAlt(e,7),this.state=3050,this.individualUsage();break;case 8:this.enterOuterAlt(e,8),this.state=3051,this.portionUsage();break;case 9:this.enterOuterAlt(e,9),this.state=3052,this.eventOccurrenceUsage();break;case 10:this.enterOuterAlt(e,10),this.state=3053,this.itemUsage();break;case 11:this.enterOuterAlt(e,11),this.state=3054,this.partUsage();break;case 12:this.enterOuterAlt(e,12),this.state=3055,this.viewUsage();break;case 13:this.enterOuterAlt(e,13),this.state=3056,this.renderingUsage();break;case 14:this.enterOuterAlt(e,14),this.state=3057,this.portUsage();break;case 15:this.enterOuterAlt(e,15),this.state=3058,this.connectionUsage();break;case 16:this.enterOuterAlt(e,16),this.state=3059,this.interfaceUsage();break;case 17:this.enterOuterAlt(e,17),this.state=3060,this.allocationUsage();break;case 18:this.enterOuterAlt(e,18),this.state=3061,this.message();break;case 19:this.enterOuterAlt(e,19),this.state=3062,this.flowUsage();break;case 20:this.enterOuterAlt(e,20),this.state=3063,this.successionFlowUsage();break;case 21:this.enterOuterAlt(e,21),this.state=3064,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subclassificationPart(){let e=new r0(this.context,this.state);this.enterRule(e,520,r.RULE_subclassificationPart);let t;try{for(this.enterOuterAlt(e,1),this.state=3067,t=this.tokenStream.LA(1),t===139||t===185?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3068,this.ownedSubclassification(),this.state=3073,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3069,this.match(r.COMMA),this.state=3070,this.ownedSubclassification(),this.state=3075,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}attributeDefinition(){let e=new i0(this.context,this.state);this.enterRule(e,522,r.RULE_attributeDefinition);try{this.enterOuterAlt(e,1),this.state=3076,this.definitionPrefix(),this.state=3077,this.match(r.ATTRIBUTE),this.state=3078,this.match(r.DEF),this.state=3079,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}attributeUsage(){let e=new ms(this.context,this.state);this.enterRule(e,524,r.RULE_attributeUsage);try{this.enterOuterAlt(e,1),this.state=3081,this.usagePrefix(),this.state=3082,this.match(r.ATTRIBUTE),this.state=3083,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}enumerationDefinition(){let e=new n0(this.context,this.state);this.enterRule(e,526,r.RULE_enumerationDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=3088,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3085,this.definitionExtensionKeyword(),this.state=3090,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3091,this.match(r.ENUM),this.state=3092,this.match(r.DEF),this.state=3093,this.definitionDeclaration(),this.state=3094,this.enumerationBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationBody(){let e=new s0(this.context,this.state);this.enterRule(e,528,r.RULE_enumerationBody);let t;try{switch(this.state=3106,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3096,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3097,this.match(r.LBRACE),this.state=3102,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t-30&-32)===0&&(1<<t-30&285413377)!==0||(t-93&-32)===0&&(1<<t-93&3759153669)!==0||(t-125&-32)===0&&(1<<t-125&8388681)!==0||(t-158&-32)===0&&(1<<t-158&1275461633)!==0||(t-192&-32)===0&&(1<<t-192&2353852417)!==0;){switch(this.state=3100,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COMMENT:case r.DOC:case r.LANGUAGE:case r.LOCALE:case r.METADATA:case r.REP:case r.HASH:case r.AT_SIGN:case r.REGULAR_COMMENT:this.state=3098,this.annotatingMember();break;case r.CROSSES:case r.DEFAULT:case r.DEFINED:case r.ENUM:case r.NONUNIQUE:case r.ORDERED:case r.PRIVATE:case r.PROTECTED:case r.PUBLIC:case r.REDEFINES:case r.REFERENCES:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_EQ:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.SEMI:case r.LT:case r.EQ:case r.LBRACK:case r.LBRACE:case r.IDENTIFIER:case r.STRING:this.state=3099,this.enumerationUsageMember();break;default:throw new j(this)}this.state=3104,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}this.state=3105,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationUsageMember(){let e=new Ka(this.context,this.state);this.enterRule(e,530,r.RULE_enumerationUsageMember);try{this.enterOuterAlt(e,1),this.state=3108,this.memberPrefix(),this.state=3109,this.enumeratedValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}enumeratedValue(){let e=new a0(this.context,this.state);this.enterRule(e,532,r.RULE_enumeratedValue);let t;try{this.enterOuterAlt(e,1),this.state=3112,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===58&&(this.state=3111,this.match(r.ENUM)),this.state=3114,this.usage()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}enumerationUsage(){let e=new Qa(this.context,this.state);this.enterRule(e,534,r.RULE_enumerationUsage);try{this.enterOuterAlt(e,1),this.state=3116,this.usagePrefix(),this.state=3117,this.match(r.ENUM),this.state=3118,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceDefinitionPrefix(){let e=new Ie(this.context,this.state);this.enterRule(e,536,r.RULE_occurrenceDefinitionPrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3121,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=3120,this.basicDefinitionPrefix()),this.state=3125,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3123,this.match(r.INDIVIDUAL),this.state=3124,this.emptyMultiplicityMember()),this.state=3130,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3127,this.definitionExtensionKeyword(),this.state=3132,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}occurrenceDefinition(){let e=new o0(this.context,this.state);this.enterRule(e,538,r.RULE_occurrenceDefinition);try{this.enterOuterAlt(e,1),this.state=3133,this.occurrenceDefinitionPrefix(),this.state=3134,this.match(r.OCCURRENCE),this.state=3135,this.match(r.DEF),this.state=3136,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}individualDefinition(){let e=new l0(this.context,this.state);this.enterRule(e,540,r.RULE_individualDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=3139,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=3138,this.basicDefinitionPrefix()),this.state=3141,this.match(r.INDIVIDUAL),this.state=3145,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3142,this.definitionExtensionKeyword(),this.state=3147,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3148,this.match(r.DEF),this.state=3149,this.definition(),this.state=3150,this.emptyMultiplicityMember()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}emptyMultiplicityMember(){let e=new $a(this.context,this.state);this.enterRule(e,542,r.RULE_emptyMultiplicityMember);try{this.enterOuterAlt(e,1),this.state=3152,this.emptyMultiplicity_()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}occurrenceUsagePrefix(){let e=new ce(this.context,this.state);this.enterRule(e,544,r.RULE_occurrenceUsagePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3154,this.basicUsagePrefix(),this.state=3156,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3155,this.match(r.INDIVIDUAL)),this.state=3159,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===137||t===153)&&(this.state=3158,this.portionKind()),this.state=3164,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3161,this.usageExtensionKeyword(),this.state=3166,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}occurrenceUsage(){let e=new Ya(this.context,this.state);this.enterRule(e,546,r.RULE_occurrenceUsage);try{this.enterOuterAlt(e,1),this.state=3167,this.occurrenceUsagePrefix(),this.state=3168,this.match(r.OCCURRENCE),this.state=3169,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}individualUsage(){let e=new Ja(this.context,this.state);this.enterRule(e,548,r.RULE_individualUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=3171,this.basicUsagePrefix(),this.state=3172,this.match(r.INDIVIDUAL),this.state=3176,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3173,this.usageExtensionKeyword(),this.state=3178,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3179,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}portionUsage(){let e=new Xa(this.context,this.state);this.enterRule(e,550,r.RULE_portionUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=3181,this.basicUsagePrefix(),this.state=3183,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3182,this.match(r.INDIVIDUAL)),this.state=3185,this.portionKind(),this.state=3189,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3186,this.usageExtensionKeyword(),this.state=3191,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3192,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}portionKind(){let e=new xs(this.context,this.state);this.enterRule(e,552,r.RULE_portionKind);let t;try{this.enterOuterAlt(e,1),this.state=3194,t=this.tokenStream.LA(1),t===137||t===153?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}eventOccurrenceUsage(){let e=new Za(this.context,this.state);this.enterRule(e,554,r.RULE_eventOccurrenceUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3196,this.occurrenceUsagePrefix(),this.state=3197,this.match(r.EVENT),this.state=3206,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=3198,this.ownedReferenceSubsetting(),this.state=3200,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3199,this.featureSpecializationPart());break;case r.OCCURRENCE:this.state=3202,this.match(r.OCCURRENCE),this.state=3204,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3203,this.usageDeclaration());break;default:throw new j(this)}this.state=3208,this.usageCompletion()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sourceSuccessionMember(){let e=new bi(this.context,this.state);this.enterRule(e,556,r.RULE_sourceSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3210,this.match(r.THEN),this.state=3211,this.sourceSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceSuccession(){let e=new u0(this.context,this.state);this.enterRule(e,558,r.RULE_sourceSuccession);try{this.enterOuterAlt(e,1),this.state=3213,this.sourceEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceEndMember(){let e=new eo(this.context,this.state);this.enterRule(e,560,r.RULE_sourceEndMember);try{this.enterOuterAlt(e,1),this.state=3215,this.sourceEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sourceEnd(){let e=new c0(this.context,this.state);this.enterRule(e,562,r.RULE_sourceEnd);try{this.enterOuterAlt(e,1),this.state=3218,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,312,this.context)===1&&(this.state=3217,this.ownedMultiplicity())}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}itemDefinition(){let e=new h0(this.context,this.state);this.enterRule(e,564,r.RULE_itemDefinition);try{this.enterOuterAlt(e,1),this.state=3220,this.occurrenceDefinitionPrefix(),this.state=3221,this.match(r.ITEM),this.state=3222,this.match(r.DEF),this.state=3223,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}itemUsage(){let e=new to(this.context,this.state);this.enterRule(e,566,r.RULE_itemUsage);try{this.enterOuterAlt(e,1),this.state=3225,this.occurrenceUsagePrefix(),this.state=3226,this.match(r.ITEM),this.state=3227,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}partDefinition(){let e=new d0(this.context,this.state);this.enterRule(e,568,r.RULE_partDefinition);try{this.enterOuterAlt(e,1),this.state=3229,this.occurrenceDefinitionPrefix(),this.state=3230,this.match(r.PART),this.state=3231,this.match(r.DEF),this.state=3232,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}partUsage(){let e=new ro(this.context,this.state);this.enterRule(e,570,r.RULE_partUsage);try{this.enterOuterAlt(e,1),this.state=3234,this.occurrenceUsagePrefix(),this.state=3235,this.match(r.PART),this.state=3236,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portDefinition(){let e=new p0(this.context,this.state);this.enterRule(e,572,r.RULE_portDefinition);try{this.enterOuterAlt(e,1),this.state=3238,this.definitionPrefix(),this.state=3239,this.match(r.PORT),this.state=3240,this.match(r.DEF),this.state=3241,this.definition(),this.state=3242,this.conjugatedPortDefinitionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortDefinitionMember(){let e=new f0(this.context,this.state);this.enterRule(e,574,r.RULE_conjugatedPortDefinitionMember);try{this.enterOuterAlt(e,1),this.state=3244,this.conjugatedPortDefinition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortDefinition(){let e=new m0(this.context,this.state);this.enterRule(e,576,r.RULE_conjugatedPortDefinition);try{this.enterOuterAlt(e,1),this.state=3246,this.portConjugation()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portUsage(){let e=new io(this.context,this.state);this.enterRule(e,578,r.RULE_portUsage);try{this.enterOuterAlt(e,1),this.state=3248,this.occurrenceUsagePrefix(),this.state=3249,this.match(r.PORT),this.state=3250,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}conjugatedPortTyping(){let e=new x0(this.context,this.state);this.enterRule(e,580,r.RULE_conjugatedPortTyping);try{this.enterOuterAlt(e,1),this.state=3252,this.match(r.TILDE),this.state=3253,this.qualifiedName()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectionDefinition(){let e=new b0(this.context,this.state);this.enterRule(e,582,r.RULE_connectionDefinition);try{this.enterOuterAlt(e,1),this.state=3255,this.occurrenceDefinitionPrefix(),this.state=3256,this.match(r.CONNECTION),this.state=3257,this.match(r.DEF),this.state=3258,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}connectionUsage(){let e=new no(this.context,this.state);this.enterRule(e,584,r.RULE_connectionUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3260,this.occurrenceUsagePrefix(),this.state=3274,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.CONNECTION:this.state=3261,this.match(r.CONNECTION),this.state=3263,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3262,this.usageDeclaration()),this.state=3266,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3265,this.valuePart()),this.state=3270,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===36&&(this.state=3268,this.match(r.CONNECT),this.state=3269,this.connectorPart());break;case r.CONNECT:this.state=3272,this.match(r.CONNECT),this.state=3273,this.connectorPart();break;default:throw new j(this)}this.state=3276,this.usageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}connectorPart(){let e=new so(this.context,this.state);this.enterRule(e,586,r.RULE_connectorPart);try{switch(this.state=3280,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.LBRACK:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=3278,this.binaryConnectorPart();break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=3279,this.naryConnectorPart();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryConnectorPart(){let e=new g0(this.context,this.state);this.enterRule(e,588,r.RULE_binaryConnectorPart);try{this.enterOuterAlt(e,1),this.state=3282,this.connectorEndMember(),this.state=3283,this.match(r.TO),this.state=3284,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}naryConnectorPart(){let e=new R0(this.context,this.state);this.enterRule(e,590,r.RULE_naryConnectorPart);let t;try{this.enterOuterAlt(e,1);{for(this.state=3286,this.match(r.LPAREN),this.state=3287,this.connectorEndMember(),this.state=3288,this.match(r.COMMA),this.state=3289,this.connectorEndMember(),this.state=3294,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3290,this.match(r.COMMA),this.state=3291,this.connectorEndMember(),this.state=3296,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3297,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}bindingConnectorAsUsage(){let e=new bs(this.context,this.state);this.enterRule(e,592,r.RULE_bindingConnectorAsUsage);let t;try{this.enterOuterAlt(e,1),this.state=3299,this.usagePrefix(),this.state=3304,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===22&&(this.state=3300,this.match(r.BINDING),this.state=3302,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3301,this.usageDeclaration())),this.state=3306,this.match(r.BIND),this.state=3307,this.connectorEndMember(),this.state=3308,this.match(r.EQ),this.state=3309,this.connectorEndMember(),this.state=3310,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}successionAsUsage(){let e=new gs(this.context,this.state);this.enterRule(e,594,r.RULE_successionAsUsage);let t;try{this.enterOuterAlt(e,1),this.state=3312,this.usagePrefix(),this.state=3317,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===150&&(this.state=3313,this.match(r.SUCCESSION),this.state=3315,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3314,this.usageDeclaration())),this.state=3319,this.match(r.FIRST),this.state=3320,this.connectorEndMember(),this.state=3321,this.match(r.THEN),this.state=3322,this.connectorEndMember(),this.state=3323,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceDefinition(){let e=new y0(this.context,this.state);this.enterRule(e,596,r.RULE_interfaceDefinition);try{this.enterOuterAlt(e,1),this.state=3325,this.occurrenceDefinitionPrefix(),this.state=3326,this.match(r.INTERFACE),this.state=3327,this.match(r.DEF),this.state=3328,this.definitionDeclaration(),this.state=3329,this.interfaceBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceBody(){let e=new ao(this.context,this.state);this.enterRule(e,598,r.RULE_interfaceBody);let t;try{switch(this.state=3340,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3331,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3332,this.match(r.LBRACE),this.state=3336,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490930993)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&2993926401)!==0||(t-135&-32)===0&&(1<<t-135&3892740293)!==0||(t-169&-32)===0&&(1<<t-169&8388611)!==0||t===210||t===223;)this.state=3333,this.interfaceBodyItem(),this.state=3338,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3339,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceBodyItem(){let e=new oo(this.context,this.state);this.enterRule(e,600,r.RULE_interfaceBodyItem);let t;try{switch(this.state=3351,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,326,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3342,this.definitionMember();break;case 2:this.enterOuterAlt(e,2),this.state=3343,this.variantUsageMember();break;case 3:this.enterOuterAlt(e,3),this.state=3344,this.interfaceNonOccurrenceUsageMember();break;case 4:this.enterOuterAlt(e,4),this.state=3346,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3345,this.sourceSuccessionMember()),this.state=3348,this.interfaceOccurrenceUsageMember();break;case 5:this.enterOuterAlt(e,5),this.state=3349,this.aliasMember();break;case 6:this.enterOuterAlt(e,6),this.state=3350,this.importRule();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceNonOccurrenceUsageMember(){let e=new C0(this.context,this.state);this.enterRule(e,602,r.RULE_interfaceNonOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=3353,this.memberPrefix(),this.state=3354,this.interfaceNonOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceNonOccurrenceUsageElement(){let e=new v0(this.context,this.state);this.enterRule(e,604,r.RULE_interfaceNonOccurrenceUsageElement);try{switch(this.state=3361,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,327,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3356,this.referenceUsage();break;case 2:this.enterOuterAlt(e,2),this.state=3357,this.attributeUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3358,this.enumerationUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3359,this.bindingConnectorAsUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3360,this.successionAsUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceOccurrenceUsageMember(){let e=new E0(this.context,this.state);this.enterRule(e,606,r.RULE_interfaceOccurrenceUsageMember);try{this.enterOuterAlt(e,1),this.state=3363,this.memberPrefix(),this.state=3364,this.interfaceOccurrenceUsageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceOccurrenceUsageElement(){let e=new L0(this.context,this.state);this.enterRule(e,608,r.RULE_interfaceOccurrenceUsageElement);try{switch(this.state=3369,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,328,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3366,this.defaultInterfaceEnd();break;case 2:this.enterOuterAlt(e,2),this.state=3367,this.structureUsageElement();break;case 3:this.enterOuterAlt(e,3),this.state=3368,this.behaviorUsageElement();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultInterfaceEnd(){let e=new S0(this.context,this.state);this.enterRule(e,610,r.RULE_defaultInterfaceEnd);try{this.enterOuterAlt(e,1),this.state=3371,this.match(r.END),this.state=3372,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceUsage(){let e=new lo(this.context,this.state);this.enterRule(e,612,r.RULE_interfaceUsage);try{this.enterOuterAlt(e,1),this.state=3374,this.occurrenceUsagePrefix(),this.state=3375,this.match(r.INTERFACE),this.state=3376,this.interfaceUsageDeclaration(),this.state=3377,this.interfaceBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceUsageDeclaration(){let e=new P0(this.context,this.state);this.enterRule(e,614,r.RULE_interfaceUsageDeclaration);let t;try{switch(this.state=3390,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,332,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3380,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3379,this.usageDeclaration()),this.state=3383,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3382,this.valuePart()),this.state=3387,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===36&&(this.state=3385,this.match(r.CONNECT),this.state=3386,this.interfacePart());break;case 2:this.enterOuterAlt(e,2),this.state=3389,this.interfacePart();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfacePart(){let e=new T0(this.context,this.state);this.enterRule(e,616,r.RULE_interfacePart);try{switch(this.state=3394,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.LBRACK:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=3392,this.binaryInterfacePart();break;case r.LPAREN:this.enterOuterAlt(e,2),this.state=3393,this.naryInterfacePart();break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}binaryInterfacePart(){let e=new A0(this.context,this.state);this.enterRule(e,618,r.RULE_binaryInterfacePart);try{this.enterOuterAlt(e,1),this.state=3396,this.interfaceEndMember(),this.state=3397,this.match(r.TO),this.state=3398,this.interfaceEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}naryInterfacePart(){let e=new M0(this.context,this.state);this.enterRule(e,620,r.RULE_naryInterfacePart);let t;try{this.enterOuterAlt(e,1);{for(this.state=3400,this.match(r.LPAREN),this.state=3401,this.interfaceEndMember(),this.state=3402,this.match(r.COMMA),this.state=3403,this.interfaceEndMember(),this.state=3408,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=3404,this.match(r.COMMA),this.state=3405,this.interfaceEndMember(),this.state=3410,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3411,this.match(r.RPAREN)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}interfaceEndMember(){let e=new Zi(this.context,this.state);this.enterRule(e,622,r.RULE_interfaceEndMember);try{this.enterOuterAlt(e,1),this.state=3413,this.interfaceEnd()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}interfaceEnd(){let e=new N0(this.context,this.state);this.enterRule(e,624,r.RULE_interfaceEnd);let t;try{this.enterOuterAlt(e,1),this.state=3416,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===211&&(this.state=3415,this.ownedCrossMultiplicityMember()),this.state=3421,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,336,this.context)===1&&(this.state=3418,this.name(),this.state=3419,t=this.tokenStream.LA(1),t===128||t===175?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=3423,this.ownedReferenceSubsetting()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}allocationDefinition(){let e=new U0(this.context,this.state);this.enterRule(e,626,r.RULE_allocationDefinition);try{this.enterOuterAlt(e,1),this.state=3425,this.occurrenceDefinitionPrefix(),this.state=3426,this.match(r.ALLOCATION),this.state=3427,this.match(r.DEF),this.state=3428,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}allocationUsage(){let e=new uo(this.context,this.state);this.enterRule(e,628,r.RULE_allocationUsage);try{this.enterOuterAlt(e,1),this.state=3430,this.occurrenceUsagePrefix(),this.state=3431,this.allocationUsageDeclaration(),this.state=3432,this.usageBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}allocationUsageDeclaration(){let e=new w0(this.context,this.state);this.enterRule(e,630,r.RULE_allocationUsageDeclaration);let t;try{switch(this.state=3444,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ALLOCATION:this.enterOuterAlt(e,1),this.state=3434,this.match(r.ALLOCATION),this.state=3436,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3435,this.usageDeclaration()),this.state=3440,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===9&&(this.state=3438,this.match(r.ALLOCATE),this.state=3439,this.connectorPart());break;case r.ALLOCATE:this.enterOuterAlt(e,2),this.state=3442,this.match(r.ALLOCATE),this.state=3443,this.connectorPart();break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}flowDefinition(){let e=new D0(this.context,this.state);this.enterRule(e,632,r.RULE_flowDefinition);try{this.enterOuterAlt(e,1),this.state=3446,this.occurrenceDefinitionPrefix(),this.state=3447,this.match(r.FLOW),this.state=3448,this.match(r.DEF),this.state=3449,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}message(){let e=new co(this.context,this.state);this.enterRule(e,634,r.RULE_message);try{this.enterOuterAlt(e,1),this.state=3451,this.occurrenceUsagePrefix(),this.state=3452,this.match(r.MESSAGE),this.state=3453,this.messageDeclaration(),this.state=3454,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}messageDeclaration(){let e=new O0(this.context,this.state);this.enterRule(e,636,r.RULE_messageDeclaration);let t;try{switch(this.state=3477,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,344,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3457,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3456,this.usageDeclaration()),this.state=3460,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3459,this.valuePart()),this.state=3464,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===111&&(this.state=3462,this.match(r.OF),this.state=3463,this.flowPayloadFeatureMember()),this.state=3471,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===74&&(this.state=3466,this.match(r.FROM),this.state=3467,this.messageEventMember(),this.state=3468,this.match(r.TO),this.state=3469,this.messageEventMember());break;case 2:this.enterOuterAlt(e,2),this.state=3473,this.messageEventMember(),this.state=3474,this.match(r.TO),this.state=3475,this.messageEventMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}messageEventMember(){let e=new ho(this.context,this.state);this.enterRule(e,638,r.RULE_messageEventMember);try{this.enterOuterAlt(e,1),this.state=3479,this.messageEvent()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}messageEvent(){let e=new I0(this.context,this.state);this.enterRule(e,640,r.RULE_messageEvent);try{this.enterOuterAlt(e,1),this.state=3481,this.ownedReferenceSubsetting()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowUsage(){let e=new po(this.context,this.state);this.enterRule(e,642,r.RULE_flowUsage);try{this.enterOuterAlt(e,1),this.state=3483,this.occurrenceUsagePrefix(),this.state=3484,this.match(r.FLOW),this.state=3485,this.flowDeclaration(),this.state=3486,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}successionFlowUsage(){let e=new fo(this.context,this.state);this.enterRule(e,644,r.RULE_successionFlowUsage);try{this.enterOuterAlt(e,1),this.state=3488,this.occurrenceUsagePrefix(),this.state=3489,this.match(r.SUCCESSION),this.state=3490,this.match(r.FLOW),this.state=3491,this.flowDeclaration(),this.state=3492,this.definitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowPayloadFeatureMember(){let e=new mo(this.context,this.state);this.enterRule(e,646,r.RULE_flowPayloadFeatureMember);try{this.enterOuterAlt(e,1),this.state=3494,this.flowPayloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowPayloadFeature(){let e=new k0(this.context,this.state);this.enterRule(e,648,r.RULE_flowPayloadFeature);try{this.enterOuterAlt(e,1),this.state=3496,this.payloadFeature()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}flowEndSubsetting(){let e=new a4(this.context,this.state);this.enterRule(e,650,r.RULE_flowEndSubsetting);try{switch(this.state=3500,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,345,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3498,this.qualifiedName();break;case 2:this.enterOuterAlt(e,2),this.state=3499,this.featureChainPrefix();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureChainPrefix(){let e=new F0(this.context,this.state);this.enterRule(e,652,r.RULE_featureChainPrefix);try{let t;this.enterOuterAlt(e,1);{this.state=3505,this.errorHandler.sync(this),t=1;do{if(t===1)this.state=3502,this.ownedFeatureChaining(),this.state=3503,this.match(r.DOT);else throw new j(this);this.state=3507,this.errorHandler.sync(this),t=this.interpreter.adaptivePredict(this.tokenStream,346,this.context)}while(t!==2&&t!==ee.INVALID_ALT_NUMBER);this.state=3509,this.ownedFeatureChaining(),this.state=3510,this.match(r.DOT)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionDefinition(){let e=new H0(this.context,this.state);this.enterRule(e,654,r.RULE_actionDefinition);try{this.enterOuterAlt(e,1),this.state=3512,this.occurrenceDefinitionPrefix(),this.state=3513,this.match(r.ACTION),this.state=3514,this.match(r.DEF),this.state=3515,this.definitionDeclaration(),this.state=3516,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBody(){let e=new ze(this.context,this.state);this.enterRule(e,656,r.RULE_actionBody);let t;try{switch(this.state=3527,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3518,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3519,this.match(r.LBRACE),this.state=3523,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3520,this.actionBodyItem(),this.state=3525,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3526,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionBodyItem(){let e=new ot(this.context,this.state);this.enterRule(e,658,r.RULE_actionBodyItem);let t;try{let i;switch(this.state=3548,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,352,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3529,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(e,2),this.state=3530,this.initialNodeMember(),this.state=3534,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,349,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=3531,this.actionTargetSuccessionMember()),this.state=3536,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,349,this.context);break;case 3:for(this.enterOuterAlt(e,3),this.state=3538,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3537,this.sourceSuccessionMember()),this.state=3540,this.actionBehaviorMember(),this.state=3544,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,351,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=3541,this.actionTargetSuccessionMember()),this.state=3546,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,351,this.context);break;case 4:this.enterOuterAlt(e,4),this.state=3547,this.guardedSuccessionMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nonBehaviorBodyItem(){let e=new xo(this.context,this.state);this.enterRule(e,660,r.RULE_nonBehaviorBodyItem);let t;try{switch(this.state=3559,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,354,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3550,this.importRule();break;case 2:this.enterOuterAlt(e,2),this.state=3551,this.aliasMember();break;case 3:this.enterOuterAlt(e,3),this.state=3552,this.definitionMember();break;case 4:this.enterOuterAlt(e,4),this.state=3553,this.variantUsageMember();break;case 5:this.enterOuterAlt(e,5),this.state=3554,this.nonOccurrenceUsageMember();break;case 6:this.enterOuterAlt(e,6),this.state=3556,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3555,this.sourceSuccessionMember()),this.state=3558,this.structureUsageMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionBehaviorMember(){let e=new B0(this.context,this.state);this.enterRule(e,662,r.RULE_actionBehaviorMember);try{switch(this.state=3563,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,355,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3561,this.behaviorUsageMember();break;case 2:this.enterOuterAlt(e,2),this.state=3562,this.actionNodeMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}initialNodeMember(){let e=new _0(this.context,this.state);this.enterRule(e,664,r.RULE_initialNodeMember);try{this.enterOuterAlt(e,1),this.state=3565,this.memberPrefix(),this.state=3566,this.match(r.FIRST),this.state=3567,this.qualifiedName(),this.state=3568,this.relationshipBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionNodeMember(){let e=new V0(this.context,this.state);this.enterRule(e,666,r.RULE_actionNodeMember);try{this.enterOuterAlt(e,1),this.state=3570,this.memberPrefix(),this.state=3571,this.actionNode()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionTargetSuccessionMember(){let e=new bo(this.context,this.state);this.enterRule(e,668,r.RULE_actionTargetSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3573,this.memberPrefix(),this.state=3574,this.actionTargetSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedSuccessionMember(){let e=new q0(this.context,this.state);this.enterRule(e,670,r.RULE_guardedSuccessionMember);try{this.enterOuterAlt(e,1),this.state=3576,this.memberPrefix(),this.state=3577,this.guardedSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionUsage(){let e=new j0(this.context,this.state);this.enterRule(e,672,r.RULE_actionUsage);try{this.enterOuterAlt(e,1),this.state=3579,this.occurrenceUsagePrefix(),this.state=3580,this.match(r.ACTION),this.state=3581,this.actionUsageDeclaration(),this.state=3582,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionUsageDeclaration(){let e=new en(this.context,this.state);this.enterRule(e,674,r.RULE_actionUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3585,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3584,this.usageDeclaration()),this.state=3588,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3587,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}performActionUsage(){let e=new G0(this.context,this.state);this.enterRule(e,676,r.RULE_performActionUsage);try{this.enterOuterAlt(e,1),this.state=3590,this.occurrenceUsagePrefix(),this.state=3591,this.match(r.PERFORM),this.state=3592,this.performActionUsageDeclaration(),this.state=3593,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}performActionUsageDeclaration(){let e=new Rs(this.context,this.state);this.enterRule(e,678,r.RULE_performActionUsageDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3603,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=3595,this.ownedReferenceSubsetting(),this.state=3597,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3596,this.featureSpecializationPart());break;case r.ACTION:this.state=3599,this.match(r.ACTION),this.state=3601,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3600,this.usageDeclaration());break;default:throw new j(this)}this.state=3606,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3605,this.valuePart())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionNode(){let e=new W0(this.context,this.state);this.enterRule(e,680,r.RULE_actionNode);try{switch(this.state=3616,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,362,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3608,this.controlNode();break;case 2:this.enterOuterAlt(e,2),this.state=3609,this.sendNode();break;case 3:this.enterOuterAlt(e,3),this.state=3610,this.acceptNode();break;case 4:this.enterOuterAlt(e,4),this.state=3611,this.assignmentNode();break;case 5:this.enterOuterAlt(e,5),this.state=3612,this.terminateNode();break;case 6:this.enterOuterAlt(e,6),this.state=3613,this.ifNode();break;case 7:this.enterOuterAlt(e,7),this.state=3614,this.whileLoopNode();break;case 8:this.enterOuterAlt(e,8),this.state=3615,this.forLoopNode();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionNodeUsageDeclaration(){let e=new Vr(this.context,this.state);this.enterRule(e,682,r.RULE_actionNodeUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3618,this.match(r.ACTION),this.state=3620,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3619,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionNodePrefix(){let e=new ys(this.context,this.state);this.enterRule(e,684,r.RULE_actionNodePrefix);let t;try{this.enterOuterAlt(e,1),this.state=3622,this.occurrenceUsagePrefix(),this.state=3624,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3623,this.actionNodeUsageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}controlNode(){let e=new z0(this.context,this.state);this.enterRule(e,686,r.RULE_controlNode);try{switch(this.state=3630,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,365,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3626,this.mergeNode();break;case 2:this.enterOuterAlt(e,2),this.state=3627,this.decisionNode();break;case 3:this.enterOuterAlt(e,3),this.state=3628,this.joinNode();break;case 4:this.enterOuterAlt(e,4),this.state=3629,this.forkNode();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}controlNodePrefix(){let e=new tn(this.context,this.state);this.enterRule(e,688,r.RULE_controlNodePrefix);let t;try{for(this.enterOuterAlt(e,1),this.state=3632,this.refPrefix(),this.state=3634,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===82&&(this.state=3633,this.match(r.INDIVIDUAL)),this.state=3637,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===137||t===153)&&(this.state=3636,this.portionKind()),this.state=3642,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=3639,this.usageExtensionKeyword(),this.state=3644,this.errorHandler.sync(this),t=this.tokenStream.LA(1)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}mergeNode(){let e=new K0(this.context,this.state);this.enterRule(e,690,r.RULE_mergeNode);let t;try{this.enterOuterAlt(e,1),this.state=3645,this.controlNodePrefix(),this.state=3646,this.match(r.MERGE),this.state=3648,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3647,this.usageDeclaration()),this.state=3650,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}decisionNode(){let e=new Q0(this.context,this.state);this.enterRule(e,692,r.RULE_decisionNode);let t;try{this.enterOuterAlt(e,1),this.state=3652,this.controlNodePrefix(),this.state=3653,this.match(r.DECIDE),this.state=3655,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3654,this.usageDeclaration()),this.state=3657,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}joinNode(){let e=new $0(this.context,this.state);this.enterRule(e,694,r.RULE_joinNode);let t;try{this.enterOuterAlt(e,1),this.state=3659,this.controlNodePrefix(),this.state=3660,this.match(r.JOIN),this.state=3662,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3661,this.usageDeclaration()),this.state=3664,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forkNode(){let e=new Y0(this.context,this.state);this.enterRule(e,696,r.RULE_forkNode);let t;try{this.enterOuterAlt(e,1),this.state=3666,this.controlNodePrefix(),this.state=3667,this.match(r.FORK),this.state=3669,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3668,this.usageDeclaration()),this.state=3671,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}acceptNode(){let e=new J0(this.context,this.state);this.enterRule(e,698,r.RULE_acceptNode);try{this.enterOuterAlt(e,1),this.state=3673,this.occurrenceUsagePrefix(),this.state=3674,this.acceptNodeDeclaration(),this.state=3675,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}acceptNodeDeclaration(){let e=new Cs(this.context,this.state);this.enterRule(e,700,r.RULE_acceptNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3678,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3677,this.actionNodeUsageDeclaration()),this.state=3680,this.match(r.ACCEPT),this.state=3681,this.acceptParameterPart()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}acceptParameterPart(){let e=new go(this.context,this.state);this.enterRule(e,702,r.RULE_acceptParameterPart);let t;try{this.enterOuterAlt(e,1),this.state=3683,this.payloadParameterMember(),this.state=3686,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===168&&(this.state=3684,this.match(r.VIA),this.state=3685,this.nodeParameterMember())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}payloadParameterMember(){let e=new X0(this.context,this.state);this.enterRule(e,704,r.RULE_payloadParameterMember);try{this.enterOuterAlt(e,1),this.state=3688,this.payloadParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}payloadParameter(){let e=new Z0(this.context,this.state);this.enterRule(e,706,r.RULE_payloadParameter);let t;try{switch(this.state=3698,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,377,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3690,this.payloadFeature();break;case 2:this.enterOuterAlt(e,2),this.state=3692,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=3691,this.identification()),this.state=3695,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3694,this.payloadFeatureSpecializationPart()),this.state=3697,this.triggerValuePart();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}triggerValuePart(){let e=new eh(this.context,this.state);this.enterRule(e,708,r.RULE_triggerValuePart);try{this.enterOuterAlt(e,1),this.state=3700,this.triggerFeatureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerFeatureValue(){let e=new th(this.context,this.state);this.enterRule(e,710,r.RULE_triggerFeatureValue);try{this.enterOuterAlt(e,1),this.state=3702,this.triggerExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerExpression(){let e=new rh(this.context,this.state);this.enterRule(e,712,r.RULE_triggerExpression);let t;try{switch(this.state=3708,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.AFTER:case r.AT:this.enterOuterAlt(e,1),this.state=3704,t=this.tokenStream.LA(1),t===6||t===18?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=3705,this.argumentMember();break;case r.WHEN:this.enterOuterAlt(e,2),this.state=3706,this.match(r.WHEN),this.state=3707,this.argumentExpressionMember();break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sendNode(){let e=new ih(this.context,this.state);this.enterRule(e,714,r.RULE_sendNode);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3710,this.occurrenceUsagePrefix(),this.state=3713,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ACTION:this.state=3711,this.actionNodeUsageDeclaration();break;case r.CROSSES:case r.DEFAULT:case r.DEFINED:case r.NONUNIQUE:case r.ORDERED:case r.REDEFINES:case r.REFERENCES:case r.SEND:case r.SUBSETS:case r.TYPED:case r.COLON_COLON_GT:case r.COLON_GT_GT:case r.COLON_EQ:case r.COLON_GT:case r.FAT_ARROW:case r.COLON:case r.LT:case r.EQ:case r.LBRACK:case r.IDENTIFIER:case r.STRING:this.state=3712,this.actionUsageDeclaration();break;default:throw new j(this)}switch(this.state=3715,this.match(r.SEND),this.state=3723,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.ALL:case r.FALSE:case r.IF:case r.NEW:case r.NOT:case r.NULL:case r.TRUE:case r.AT_AT:case r.DOLLAR:case r.LPAREN:case r.STAR:case r.PLUS:case r.MINUS:case r.AT_SIGN:case r.LBRACE:case r.TILDE:case r.IDENTIFIER:case r.STRING:case r.DOUBLE_STRING:case r.INTEGER:case r.REAL:this.state=3716,this.nodeParameterMember(),this.state=3718,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===154||t===168)&&(this.state=3717,this.senderReceiverPart());break;case r.TO:case r.VIA:this.state=3720,this.emptyParameterMember(),this.state=3721,this.senderReceiverPart();break;default:throw new j(this)}this.state=3725,this.actionBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}sendNodeDeclaration(){let e=new Ro(this.context,this.state);this.enterRule(e,716,r.RULE_sendNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3728,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3727,this.actionNodeUsageDeclaration()),this.state=3730,this.match(r.SEND),this.state=3731,this.nodeParameterMember(),this.state=3733,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===154||t===168)&&(this.state=3732,this.senderReceiverPart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}senderReceiverPart(){let e=new yo(this.context,this.state);this.enterRule(e,718,r.RULE_senderReceiverPart);let t;try{switch(this.state=3745,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.VIA:this.enterOuterAlt(e,1),this.state=3735,this.match(r.VIA),this.state=3736,this.nodeParameterMember(),this.state=3739,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===154&&(this.state=3737,this.match(r.TO),this.state=3738,this.nodeParameterMember());break;case r.TO:this.enterOuterAlt(e,2),this.state=3741,this.emptyParameterMember(),this.state=3742,this.match(r.TO),this.state=3743,this.nodeParameterMember();break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}nodeParameterMember(){let e=new hr(this.context,this.state);this.enterRule(e,720,r.RULE_nodeParameterMember);try{this.enterOuterAlt(e,1),this.state=3747,this.nodeParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nodeParameter(){let e=new nh(this.context,this.state);this.enterRule(e,722,r.RULE_nodeParameter);try{this.enterOuterAlt(e,1),this.state=3749,this.featureBinding()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}featureBinding(){let e=new sh(this.context,this.state);this.enterRule(e,724,r.RULE_featureBinding);try{this.enterOuterAlt(e,1),this.state=3751,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyParameterMember(){let e=new Er(this.context,this.state);this.enterRule(e,726,r.RULE_emptyParameterMember);try{this.enterOuterAlt(e,1),this.state=3753,this.emptyUsage_()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentNode(){let e=new ah(this.context,this.state);this.enterRule(e,728,r.RULE_assignmentNode);try{this.enterOuterAlt(e,1),this.state=3755,this.occurrenceUsagePrefix(),this.state=3756,this.assignmentNodeDeclaration(),this.state=3757,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentNodeDeclaration(){let e=new vs(this.context,this.state);this.enterRule(e,730,r.RULE_assignmentNodeDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3760,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3759,this.actionNodeUsageDeclaration()),this.state=3762,this.match(r.ASSIGN),this.state=3763,this.assignmentTargetMember(),this.state=3764,this.featureChainMember(),this.state=3765,this.match(r.COLON_EQ),this.state=3766,this.nodeParameterMember()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}assignmentTargetMember(){let e=new oh(this.context,this.state);this.enterRule(e,732,r.RULE_assignmentTargetMember);try{this.enterOuterAlt(e,1),this.state=3768,this.assignmentTargetParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentTargetParameter(){let e=new lh(this.context,this.state);this.enterRule(e,734,r.RULE_assignmentTargetParameter);try{this.enterOuterAlt(e,1),this.state=3773,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,387,this.context)===1&&(this.state=3770,this.assignmentTargetBinding(),this.state=3771,this.match(r.DOT))}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assignmentTargetBinding(){let e=new uh(this.context,this.state);this.enterRule(e,736,r.RULE_assignmentTargetBinding);try{this.enterOuterAlt(e,1),this.state=3775,this.nonFeatureChainPrimaryExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}terminateNode(){let e=new ch(this.context,this.state);this.enterRule(e,738,r.RULE_terminateNode);let t;try{this.enterOuterAlt(e,1),this.state=3777,this.occurrenceUsagePrefix(),this.state=3779,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3778,this.actionNodeUsageDeclaration()),this.state=3781,this.match(r.TERMINATE),this.state=3783,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,389,this.context)===1&&(this.state=3782,this.nodeParameterMember()),this.state=3785,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ifNode(){let e=new Co(this.context,this.state);this.enterRule(e,740,r.RULE_ifNode);try{switch(this.enterOuterAlt(e,1),this.state=3787,this.actionNodePrefix(),this.state=3788,this.match(r.IF),this.state=3789,this.expressionParameterMember(),this.state=3790,this.actionBodyParameterMember(),this.state=3796,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,391,this.context)){case 1:switch(this.state=3791,this.match(r.ELSE),this.state=3794,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,390,this.context)){case 1:this.state=3792,this.actionBodyParameterMember();break;case 2:this.state=3793,this.ifNodeParameterMember();break}break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expressionParameterMember(){let e=new Es(this.context,this.state);this.enterRule(e,742,r.RULE_expressionParameterMember);try{this.enterOuterAlt(e,1),this.state=3798,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBodyParameterMember(){let e=new rn(this.context,this.state);this.enterRule(e,744,r.RULE_actionBodyParameterMember);try{this.enterOuterAlt(e,1),this.state=3800,this.actionBodyParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actionBodyParameter(){let e=new hh(this.context,this.state);this.enterRule(e,746,r.RULE_actionBodyParameter);let t;try{this.enterOuterAlt(e,1);{for(this.state=3806,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===4&&(this.state=3802,this.match(r.ACTION),this.state=3804,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3803,this.usageDeclaration())),this.state=3808,this.match(r.LBRACE),this.state=3812,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3809,this.actionBodyItem(),this.state=3814,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3815,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}ifNodeParameterMember(){let e=new dh(this.context,this.state);this.enterRule(e,748,r.RULE_ifNodeParameterMember);try{this.enterOuterAlt(e,1),this.state=3817,this.ifNode()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}whileLoopNode(){let e=new ph(this.context,this.state);this.enterRule(e,750,r.RULE_whileLoopNode);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3819,this.actionNodePrefix(),this.state=3824,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.WHILE:this.state=3820,this.match(r.WHILE),this.state=3821,this.expressionParameterMember();break;case r.LOOP:this.state=3822,this.match(r.LOOP),this.state=3823,this.emptyParameterMember();break;default:throw new j(this)}this.state=3826,this.actionBodyParameterMember(),this.state=3831,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===161&&(this.state=3827,this.match(r.UNTIL),this.state=3828,this.expressionParameterMember(),this.state=3829,this.match(r.SEMI))}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forLoopNode(){let e=new fh(this.context,this.state);this.enterRule(e,752,r.RULE_forLoopNode);try{this.enterOuterAlt(e,1),this.state=3833,this.actionNodePrefix(),this.state=3834,this.match(r.FOR),this.state=3835,this.forVariableDeclarationMember(),this.state=3836,this.match(r.IN),this.state=3837,this.nodeParameterMember(),this.state=3838,this.actionBodyParameterMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}forVariableDeclarationMember(){let e=new mh(this.context,this.state);this.enterRule(e,754,r.RULE_forVariableDeclarationMember);let t;try{this.enterOuterAlt(e,1),this.state=3841,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3840,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}forVariableDeclaration(){let e=new o4(this.context,this.state);this.enterRule(e,756,r.RULE_forVariableDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=3844,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3843,this.usageDeclaration())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actionTargetSuccession(){let e=new xh(this.context,this.state);this.enterRule(e,758,r.RULE_actionTargetSuccession);try{this.enterOuterAlt(e,1);{switch(this.state=3849,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.THEN:case r.LBRACK:this.state=3846,this.targetSuccession();break;case r.IF:this.state=3847,this.guardedTargetSuccession();break;case r.ELSE:this.state=3848,this.defaultTargetSuccession();break;default:throw new j(this)}this.state=3851,this.usageBody()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}targetSuccession(){let e=new bh(this.context,this.state);this.enterRule(e,760,r.RULE_targetSuccession);try{this.enterOuterAlt(e,1),this.state=3853,this.sourceEndMember(),this.state=3854,this.match(r.THEN),this.state=3855,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedTargetSuccession(){let e=new vo(this.context,this.state);this.enterRule(e,762,r.RULE_guardedTargetSuccession);try{this.enterOuterAlt(e,1),this.state=3857,this.guardExpressionMember(),this.state=3858,this.match(r.THEN),this.state=3859,this.transitionSuccessionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}defaultTargetSuccession(){let e=new gh(this.context,this.state);this.enterRule(e,764,r.RULE_defaultTargetSuccession);try{this.enterOuterAlt(e,1),this.state=3861,this.match(r.ELSE),this.state=3862,this.transitionSuccessionMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardedSuccession(){let e=new Rh(this.context,this.state);this.enterRule(e,766,r.RULE_guardedSuccession);let t;try{this.enterOuterAlt(e,1),this.state=3868,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===150&&(this.state=3864,this.match(r.SUCCESSION),this.state=3866,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3865,this.usageDeclaration())),this.state=3870,this.match(r.FIRST),this.state=3871,this.featureChainMember(),this.state=3872,this.guardExpressionMember(),this.state=3873,this.match(r.THEN),this.state=3874,this.transitionSuccessionMember(),this.state=3875,this.usageBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stateDefinition(){let e=new yh(this.context,this.state);this.enterRule(e,768,r.RULE_stateDefinition);try{this.enterOuterAlt(e,1),this.state=3877,this.occurrenceDefinitionPrefix(),this.state=3878,this.match(r.STATE),this.state=3879,this.match(r.DEF),this.state=3880,this.definitionDeclaration(),this.state=3881,this.stateDefBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateDefBody(){let e=new Ch(this.context,this.state);this.enterRule(e,770,r.RULE_stateDefBody);let t;try{switch(this.state=3895,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3883,this.match(r.SEMI);break;case r.PARALLEL:case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3885,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===116&&(this.state=3884,this.match(r.PARALLEL)),this.state=3887,this.match(r.LBRACE),this.state=3891,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1063503665)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3902185669)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3888,this.stateBodyItem(),this.state=3893,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3894,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stateBodyItem(){let e=new nn(this.context,this.state);this.enterRule(e,772,r.RULE_stateBodyItem);let t;try{let i;switch(this.state=3918,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,408,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3897,this.nonBehaviorBodyItem();break;case 2:for(this.enterOuterAlt(e,2),this.state=3899,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===152&&(this.state=3898,this.sourceSuccessionMember()),this.state=3901,this.behaviorUsageMember(),this.state=3905,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,406,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=3902,this.targetTransitionUsageMember()),this.state=3907,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,406,this.context);break;case 3:this.enterOuterAlt(e,3),this.state=3908,this.transitionUsageMember();break;case 4:for(this.enterOuterAlt(e,4),this.state=3909,this.entryActionMember(),this.state=3913,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,407,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=3910,this.entryTransitionMember()),this.state=3915,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,407,this.context);break;case 5:this.enterOuterAlt(e,5),this.state=3916,this.doActionMember();break;case 6:this.enterOuterAlt(e,6),this.state=3917,this.exitActionMember();break}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}entryActionMember(){let e=new vh(this.context,this.state);this.enterRule(e,774,r.RULE_entryActionMember);try{this.enterOuterAlt(e,1),this.state=3920,this.memberPrefix(),this.state=3921,this.match(r.ENTRY),this.state=3922,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}doActionMember(){let e=new Eh(this.context,this.state);this.enterRule(e,776,r.RULE_doActionMember);try{this.enterOuterAlt(e,1),this.state=3924,this.memberPrefix(),this.state=3925,this.match(r.DO),this.state=3926,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}exitActionMember(){let e=new Lh(this.context,this.state);this.enterRule(e,778,r.RULE_exitActionMember);try{this.enterOuterAlt(e,1),this.state=3928,this.memberPrefix(),this.state=3929,this.match(r.EXIT),this.state=3930,this.stateActionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}entryTransitionMember(){let e=new Eo(this.context,this.state);this.enterRule(e,780,r.RULE_entryTransitionMember);try{this.enterOuterAlt(e,1);{switch(this.state=3932,this.memberPrefix(),this.state=3936,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.IF:this.state=3933,this.guardedTargetSuccession();break;case r.THEN:this.state=3934,this.match(r.THEN),this.state=3935,this.transitionSuccessionMember();break;default:throw new j(this)}this.state=3938,this.match(r.SEMI)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateActionUsage(){let e=new Ls(this.context,this.state);this.enterRule(e,782,r.RULE_stateActionUsage);try{switch(this.state=3947,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,410,this.context)){case 1:this.enterOuterAlt(e,1),this.state=3940,this.emptyActionUsage_(),this.state=3941,this.match(r.SEMI);break;case 2:this.enterOuterAlt(e,2),this.state=3943,this.statePerformActionUsage();break;case 3:this.enterOuterAlt(e,3),this.state=3944,this.stateAcceptActionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=3945,this.stateSendActionUsage();break;case 5:this.enterOuterAlt(e,5),this.state=3946,this.stateAssignmentActionUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}statePerformActionUsage(){let e=new Sh(this.context,this.state);this.enterRule(e,784,r.RULE_statePerformActionUsage);try{this.enterOuterAlt(e,1),this.state=3949,this.performActionUsageDeclaration(),this.state=3950,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateAcceptActionUsage(){let e=new Ph(this.context,this.state);this.enterRule(e,786,r.RULE_stateAcceptActionUsage);try{this.enterOuterAlt(e,1),this.state=3952,this.acceptNodeDeclaration(),this.state=3953,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateSendActionUsage(){let e=new Th(this.context,this.state);this.enterRule(e,788,r.RULE_stateSendActionUsage);try{this.enterOuterAlt(e,1),this.state=3955,this.sendNodeDeclaration(),this.state=3956,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateAssignmentActionUsage(){let e=new Ah(this.context,this.state);this.enterRule(e,790,r.RULE_stateAssignmentActionUsage);try{this.enterOuterAlt(e,1),this.state=3958,this.assignmentNodeDeclaration(),this.state=3959,this.actionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionUsageMember(){let e=new Mh(this.context,this.state);this.enterRule(e,792,r.RULE_transitionUsageMember);try{this.enterOuterAlt(e,1),this.state=3961,this.memberPrefix(),this.state=3962,this.transitionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}targetTransitionUsageMember(){let e=new Lo(this.context,this.state);this.enterRule(e,794,r.RULE_targetTransitionUsageMember);try{this.enterOuterAlt(e,1),this.state=3964,this.memberPrefix(),this.state=3965,this.targetTransitionUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateUsage(){let e=new Nh(this.context,this.state);this.enterRule(e,796,r.RULE_stateUsage);try{this.enterOuterAlt(e,1),this.state=3967,this.occurrenceUsagePrefix(),this.state=3968,this.match(r.STATE),this.state=3969,this.actionUsageDeclaration(),this.state=3970,this.stateUsageBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stateUsageBody(){let e=new So(this.context,this.state);this.enterRule(e,798,r.RULE_stateUsageBody);let t;try{switch(this.state=3984,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=3972,this.match(r.SEMI);break;case r.PARALLEL:case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=3974,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===116&&(this.state=3973,this.match(r.PARALLEL)),this.state=3976,this.match(r.LBRACE),this.state=3980,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1063503665)!==0||(t-69&-32)===0&&(1<<t-69&1195473923)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3902185669)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=3977,this.stateBodyItem(),this.state=3982,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=3983,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}exhibitStateUsage(){let e=new Uh(this.context,this.state);this.enterRule(e,800,r.RULE_exhibitStateUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=3986,this.occurrenceUsagePrefix(),this.state=3987,this.match(r.EXHIBIT),this.state=3996,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=3988,this.ownedReferenceSubsetting(),this.state=3990,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=3989,this.featureSpecializationPart());break;case r.STATE:this.state=3992,this.match(r.STATE),this.state=3994,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=3993,this.usageDeclaration());break;default:throw new j(this)}this.state=3999,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=3998,this.valuePart()),this.state=4001,this.stateUsageBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionUsage(){let e=new wh(this.context,this.state);this.enterRule(e,802,r.RULE_transitionUsage);let t;try{this.enterOuterAlt(e,1),this.state=4003,this.match(r.TRANSITION),this.state=4008,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,419,this.context)===1&&(this.state=4005,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4004,this.usageDeclaration()),this.state=4007,this.match(r.FIRST)),this.state=4010,this.featureChainMember(),this.state=4011,this.emptyParameterMember(),this.state=4015,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===3&&(this.state=4012,this.emptyParameterMember(),this.state=4013,this.triggerActionMember()),this.state=4018,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4017,this.guardExpressionMember()),this.state=4021,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4020,this.effectBehaviorMember()),this.state=4023,this.match(r.THEN),this.state=4024,this.transitionSuccessionMember(),this.state=4025,this.actionBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}targetTransitionUsage(){let e=new Dh(this.context,this.state);this.enterRule(e,804,r.RULE_targetTransitionUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4027,this.emptyParameterMember(),this.state=4052,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.TRANSITION:this.state=4028,this.match(r.TRANSITION),this.state=4032,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===3&&(this.state=4029,this.emptyParameterMember(),this.state=4030,this.triggerActionMember()),this.state=4035,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4034,this.guardExpressionMember()),this.state=4038,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4037,this.effectBehaviorMember());break;case r.ACCEPT:this.state=4040,this.emptyParameterMember(),this.state=4041,this.triggerActionMember(),this.state=4043,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===77&&(this.state=4042,this.guardExpressionMember()),this.state=4046,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4045,this.effectBehaviorMember());break;case r.IF:this.state=4048,this.guardExpressionMember(),this.state=4050,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===53&&(this.state=4049,this.effectBehaviorMember());break;case r.THEN:break;default:break}this.state=4054,this.match(r.THEN),this.state=4055,this.transitionSuccessionMember(),this.state=4056,this.actionBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}triggerActionMember(){let e=new Po(this.context,this.state);this.enterRule(e,806,r.RULE_triggerActionMember);try{this.enterOuterAlt(e,1),this.state=4058,this.match(r.ACCEPT),this.state=4059,this.triggerAction()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}triggerAction(){let e=new Oh(this.context,this.state);this.enterRule(e,808,r.RULE_triggerAction);try{this.enterOuterAlt(e,1),this.state=4061,this.acceptParameterPart()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}guardExpressionMember(){let e=new sn(this.context,this.state);this.enterRule(e,810,r.RULE_guardExpressionMember);try{this.enterOuterAlt(e,1),this.state=4063,this.match(r.IF),this.state=4064,this.ownedExpression(0)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}effectBehaviorMember(){let e=new To(this.context,this.state);this.enterRule(e,812,r.RULE_effectBehaviorMember);try{this.enterOuterAlt(e,1),this.state=4066,this.match(r.DO),this.state=4067,this.effectBehaviorUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}effectBehaviorUsage(){let e=new Ih(this.context,this.state);this.enterRule(e,814,r.RULE_effectBehaviorUsage);try{switch(this.state=4074,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,430,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4069,this.emptyActionUsage_();break;case 2:this.enterOuterAlt(e,2),this.state=4070,this.transitionPerformActionUsage();break;case 3:this.enterOuterAlt(e,3),this.state=4071,this.transitionAcceptActionUsage();break;case 4:this.enterOuterAlt(e,4),this.state=4072,this.transitionSendActionUsage();break;case 5:this.enterOuterAlt(e,5),this.state=4073,this.transitionAssignmentActionUsage();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionPerformActionUsage(){let e=new kh(this.context,this.state);this.enterRule(e,816,r.RULE_transitionPerformActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4076,this.performActionUsageDeclaration(),this.state=4085,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4077,this.match(r.LBRACE),this.state=4081,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4078,this.actionBodyItem(),this.state=4083,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4084,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionAcceptActionUsage(){let e=new Fh(this.context,this.state);this.enterRule(e,818,r.RULE_transitionAcceptActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4087,this.acceptNodeDeclaration(),this.state=4096,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4088,this.match(r.LBRACE),this.state=4092,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4089,this.actionBodyItem(),this.state=4094,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4095,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionSendActionUsage(){let e=new Hh(this.context,this.state);this.enterRule(e,820,r.RULE_transitionSendActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4098,this.sendNodeDeclaration(),this.state=4107,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4099,this.match(r.LBRACE),this.state=4103,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4100,this.actionBodyItem(),this.state=4105,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4106,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionAssignmentActionUsage(){let e=new Bh(this.context,this.state);this.enterRule(e,822,r.RULE_transitionAssignmentActionUsage);let t;try{if(this.enterOuterAlt(e,1),this.state=4109,this.assignmentNodeDeclaration(),this.state=4118,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===214){for(this.state=4110,this.match(r.LBRACE),this.state=4114,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181273756)!==0||(t-32&-32)===0&&(1<<t-32&490985265)!==0||(t-69&-32)===0&&(1<<t-69&1874951439)!==0||(t-102&-32)===0&&(1<<t-102&3069425937)!==0||(t-135&-32)===0&&(1<<t-135&3901202631)!==0||(t-169&-32)===0&&(1<<t-169&9011403)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4111,this.actionBodyItem(),this.state=4116,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4117,this.match(r.RBRACE)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}transitionSuccessionMember(){let e=new qr(this.context,this.state);this.enterRule(e,824,r.RULE_transitionSuccessionMember);try{this.enterOuterAlt(e,1),this.state=4120,this.transitionSuccession()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}transitionSuccession(){let e=new _h(this.context,this.state);this.enterRule(e,826,r.RULE_transitionSuccession);try{this.enterOuterAlt(e,1),this.state=4122,this.emptyEndMember(),this.state=4123,this.connectorEndMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyEndMember(){let e=new Vh(this.context,this.state);this.enterRule(e,828,r.RULE_emptyEndMember);try{this.enterOuterAlt(e,1),this.state=4125,this.emptyFeature_()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationDefinition(){let e=new qh(this.context,this.state);this.enterRule(e,830,r.RULE_calculationDefinition);try{this.enterOuterAlt(e,1),this.state=4127,this.occurrenceDefinitionPrefix(),this.state=4128,this.match(r.CALC),this.state=4129,this.match(r.DEF),this.state=4130,this.definitionDeclaration(),this.state=4131,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationUsage(){let e=new jh(this.context,this.state);this.enterRule(e,832,r.RULE_calculationUsage);try{this.enterOuterAlt(e,1),this.state=4133,this.occurrenceUsagePrefix(),this.state=4134,this.match(r.CALC),this.state=4135,this.actionUsageDeclaration(),this.state=4136,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationBody(){let e=new Lr(this.context,this.state);this.enterRule(e,834,r.RULE_calculationBody);try{switch(this.state=4143,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4138,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2),this.state=4139,this.match(r.LBRACE),this.state=4140,this.calculationBodyPart(),this.state=4141,this.match(r.RBRACE);break;default:throw new j(this)}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}calculationBodyPart(){let e=new Gh(this.context,this.state);this.enterRule(e,836,r.RULE_calculationBodyPart);let t;try{let i;this.enterOuterAlt(e,1);{for(this.state=4148,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,440,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=4145,this.calculationBodyItem()),this.state=4150,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,440,this.context);this.state=4152,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=4151,this.resultExpressionMember())}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}calculationBodyItem(){let e=new Ao(this.context,this.state);this.enterRule(e,838,r.RULE_calculationBodyItem);try{switch(this.state=4156,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,442,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4154,this.actionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4155,this.returnParameterMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}returnParameterMember(){let e=new Mo(this.context,this.state);this.enterRule(e,840,r.RULE_returnParameterMember);try{this.enterOuterAlt(e,1),this.state=4158,this.memberPrefix(),this.state=4159,this.match(r.RETURN),this.state=4160,this.usageElement()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constraintDefinition(){let e=new Wh(this.context,this.state);this.enterRule(e,842,r.RULE_constraintDefinition);try{this.enterOuterAlt(e,1),this.state=4162,this.occurrenceDefinitionPrefix(),this.state=4163,this.match(r.CONSTRAINT),this.state=4164,this.match(r.DEF),this.state=4165,this.definitionDeclaration(),this.state=4166,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}constraintUsage(){let e=new zh(this.context,this.state);this.enterRule(e,844,r.RULE_constraintUsage);try{this.enterOuterAlt(e,1),this.state=4168,this.occurrenceUsagePrefix(),this.state=4169,this.match(r.CONSTRAINT),this.state=4170,this.constraintUsageDeclaration(),this.state=4171,this.calculationBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}assertConstraintUsage(){let e=new Kh(this.context,this.state);this.enterRule(e,846,r.RULE_assertConstraintUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4173,this.occurrenceUsagePrefix(),this.state=4174,this.match(r.ASSERT),this.state=4176,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===107&&(this.state=4175,this.match(r.NOT)),this.state=4184,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4178,this.ownedReferenceSubsetting(),this.state=4180,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4179,this.featureSpecializationPart());break;case r.CONSTRAINT:this.state=4182,this.match(r.CONSTRAINT),this.state=4183,this.constraintUsageDeclaration();break;default:throw new j(this)}this.state=4186,this.calculationBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}constraintUsageDeclaration(){let e=new yt(this.context,this.state);this.enterRule(e,848,r.RULE_constraintUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=4189,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4188,this.usageDeclaration()),this.state=4192,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4191,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementDefinition(){let e=new Qh(this.context,this.state);this.enterRule(e,850,r.RULE_requirementDefinition);try{this.enterOuterAlt(e,1),this.state=4194,this.occurrenceDefinitionPrefix(),this.state=4195,this.match(r.REQUIREMENT),this.state=4196,this.match(r.DEF),this.state=4197,this.definitionDeclaration(),this.state=4198,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementBody(){let e=new It(this.context,this.state);this.enterRule(e,852,r.RULE_requirementBody);let t;try{switch(this.state=4209,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4200,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4201,this.match(r.LBRACE),this.state=4205,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181372084)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-69&-32)===0&&(1<<t-69&1195473939)!==0||(t-102&-32)===0&&(1<<t-102&4143167761)!==0||(t-135&-32)===0&&(1<<t-135&3901139173)!==0||(t-167&-32)===0&&(1<<t-167&36045581)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4202,this.requirementBodyItem(),this.state=4207,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4208,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementBodyItem(){let e=new No(this.context,this.state);this.enterRule(e,854,r.RULE_requirementBodyItem);try{switch(this.state=4218,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,450,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4211,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4212,this.subjectMember();break;case 3:this.enterOuterAlt(e,3),this.state=4213,this.requirementConstraintMember();break;case 4:this.enterOuterAlt(e,4),this.state=4214,this.framedConcernMember();break;case 5:this.enterOuterAlt(e,5),this.state=4215,this.requirementVerificationMember();break;case 6:this.enterOuterAlt(e,6),this.state=4216,this.actorMember();break;case 7:this.enterOuterAlt(e,7),this.state=4217,this.stakeholderMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subjectMember(){let e=new Uo(this.context,this.state);this.enterRule(e,856,r.RULE_subjectMember);try{this.enterOuterAlt(e,1),this.state=4220,this.memberPrefix(),this.state=4221,this.subjectUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}subjectUsage(){let e=new $h(this.context,this.state);this.enterRule(e,858,r.RULE_subjectUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4223,this.match(r.SUBJECT),this.state=4227,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4224,this.usageExtensionKeyword(),this.state=4229,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4230,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementConstraintMember(){let e=new Yh(this.context,this.state);this.enterRule(e,860,r.RULE_requirementConstraintMember);try{this.enterOuterAlt(e,1),this.state=4232,this.memberPrefix(),this.state=4233,this.requirementKind(),this.state=4234,this.requirementConstraintUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementKind(){let e=new Jh(this.context,this.state);this.enterRule(e,862,r.RULE_requirementKind);let t;try{this.enterOuterAlt(e,1),this.state=4236,t=this.tokenStream.LA(1),t===17||t===132?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementConstraintUsage(){let e=new Xh(this.context,this.state);this.enterRule(e,864,r.RULE_requirementConstraintUsage);let t;try{switch(this.state=4261,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4238,this.ownedReferenceSubsetting(),this.state=4240,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4239,this.featureSpecializationPart()),this.state=4242,this.requirementBody();break;case r.CONSTRAINT:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4256,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,455,this.context)){case 1:{for(this.state=4247,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4244,this.usageExtensionKeyword(),this.state=4249,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4250,this.match(r.CONSTRAINT)}break;case 2:{this.state=4252,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4251,this.usageExtensionKeyword(),this.state=4254,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4258,this.constraintUsageDeclaration(),this.state=4259,this.calculationBody()}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}framedConcernMember(){let e=new Zh(this.context,this.state);this.enterRule(e,866,r.RULE_framedConcernMember);try{this.enterOuterAlt(e,1),this.state=4263,this.memberPrefix(),this.state=4264,this.match(r.FRAME),this.state=4265,this.framedConcernUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}framedConcernUsage(){let e=new ed(this.context,this.state);this.enterRule(e,868,r.RULE_framedConcernUsage);let t;try{switch(this.state=4290,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4267,this.ownedReferenceSubsetting(),this.state=4269,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4268,this.featureSpecializationPart()),this.state=4271,this.calculationBody();break;case r.CONCERN:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4285,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,460,this.context)){case 1:{for(this.state=4276,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4273,this.usageExtensionKeyword(),this.state=4278,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4279,this.match(r.CONCERN)}break;case 2:{this.state=4281,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4280,this.usageExtensionKeyword(),this.state=4283,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4287,this.calculationUsageDeclaration(),this.state=4288,this.calculationBody()}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}actorMember(){let e=new wo(this.context,this.state);this.enterRule(e,870,r.RULE_actorMember);try{this.enterOuterAlt(e,1),this.state=4292,this.memberPrefix(),this.state=4293,this.actorUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}actorUsage(){let e=new td(this.context,this.state);this.enterRule(e,872,r.RULE_actorUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4295,this.match(r.ACTOR),this.state=4299,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4296,this.usageExtensionKeyword(),this.state=4301,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4302,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}stakeholderMember(){let e=new rd(this.context,this.state);this.enterRule(e,874,r.RULE_stakeholderMember);try{this.enterOuterAlt(e,1),this.state=4304,this.memberPrefix(),this.state=4305,this.stakeholderUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}stakeholderUsage(){let e=new id(this.context,this.state);this.enterRule(e,876,r.RULE_stakeholderUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4307,this.match(r.STAKEHOLDER),this.state=4311,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4308,this.usageExtensionKeyword(),this.state=4313,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4314,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}requirementUsage(){let e=new nd(this.context,this.state);this.enterRule(e,878,r.RULE_requirementUsage);try{this.enterOuterAlt(e,1),this.state=4316,this.occurrenceUsagePrefix(),this.state=4317,this.match(r.REQUIREMENT),this.state=4318,this.constraintUsageDeclaration(),this.state=4319,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfyRequirementUsage(){let e=new sd(this.context,this.state);this.enterRule(e,880,r.RULE_satisfyRequirementUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4321,this.occurrenceUsagePrefix(),this.state=4326,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===14&&(this.state=4322,this.match(r.ASSERT),this.state=4324,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===107&&(this.state=4323,this.match(r.NOT))),this.state=4328,this.match(r.SATISFY),this.state=4337,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4329,this.ownedReferenceSubsetting(),this.state=4331,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4330,this.featureSpecializationPart());break;case r.REQUIREMENT:this.state=4333,this.match(r.REQUIREMENT),this.state=4335,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4334,this.usageDeclaration());break;default:throw new j(this)}this.state=4340,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4339,this.valuePart()),this.state=4344,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===24&&(this.state=4342,this.match(r.BY),this.state=4343,this.satisfactionSubjectMember()),this.state=4346,this.requirementBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}satisfactionSubjectMember(){let e=new ad(this.context,this.state);this.enterRule(e,882,r.RULE_satisfactionSubjectMember);try{this.enterOuterAlt(e,1),this.state=4348,this.satisfactionParameter()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionParameter(){let e=new od(this.context,this.state);this.enterRule(e,884,r.RULE_satisfactionParameter);try{this.enterOuterAlt(e,1),this.state=4350,this.satisfactionFeatureValue()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionFeatureValue(){let e=new ld(this.context,this.state);this.enterRule(e,886,r.RULE_satisfactionFeatureValue);try{this.enterOuterAlt(e,1),this.state=4352,this.satisfactionReferenceExpression()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}satisfactionReferenceExpression(){let e=new ud(this.context,this.state);this.enterRule(e,888,r.RULE_satisfactionReferenceExpression);try{this.enterOuterAlt(e,1),this.state=4354,this.featureChainMember()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}concernDefinition(){let e=new cd(this.context,this.state);this.enterRule(e,890,r.RULE_concernDefinition);try{this.enterOuterAlt(e,1),this.state=4356,this.occurrenceDefinitionPrefix(),this.state=4357,this.match(r.CONCERN),this.state=4358,this.match(r.DEF),this.state=4359,this.definitionDeclaration(),this.state=4360,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}concernUsage(){let e=new hd(this.context,this.state);this.enterRule(e,892,r.RULE_concernUsage);try{this.enterOuterAlt(e,1),this.state=4362,this.occurrenceUsagePrefix(),this.state=4363,this.match(r.CONCERN),this.state=4364,this.constraintUsageDeclaration(),this.state=4365,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseDefinition(){let e=new dd(this.context,this.state);this.enterRule(e,894,r.RULE_caseDefinition);try{this.enterOuterAlt(e,1),this.state=4367,this.occurrenceDefinitionPrefix(),this.state=4368,this.match(r.CASE),this.state=4369,this.match(r.DEF),this.state=4370,this.definitionDeclaration(),this.state=4371,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseUsage(){let e=new pd(this.context,this.state);this.enterRule(e,896,r.RULE_caseUsage);try{this.enterOuterAlt(e,1),this.state=4373,this.occurrenceUsagePrefix(),this.state=4374,this.match(r.CASE),this.state=4375,this.constraintUsageDeclaration(),this.state=4376,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}caseBody(){let e=new Qt(this.context,this.state);this.enterRule(e,898,r.RULE_caseBody);let t;try{let i;switch(this.state=4390,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4378,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4379,this.match(r.LBRACE),this.state=4383,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,471,this.context);i!==2&&i!==ee.INVALID_ALT_NUMBER;)i===1&&(this.state=4380,this.caseBodyItem()),this.state=4385,this.errorHandler.sync(this),i=this.interpreter.adaptivePredict(this.tokenStream,471,this.context);this.state=4387,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===8||t===64||t===77||(t-105&-32)===0&&(1<<t-105&917517)!==0||t===156||(t-191&-32)===0&&(1<<t-191&4236772773)!==0)&&(this.state=4386,this.resultExpressionMember()),this.state=4389,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}caseBodyItem(){let e=new Do(this.context,this.state);this.enterRule(e,900,r.RULE_caseBodyItem);try{switch(this.state=4397,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,474,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4392,this.actionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4393,this.returnParameterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4394,this.subjectMember();break;case 4:this.enterOuterAlt(e,4),this.state=4395,this.actorMember();break;case 5:this.enterOuterAlt(e,5),this.state=4396,this.objectiveMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}objectiveMember(){let e=new fd(this.context,this.state);this.enterRule(e,902,r.RULE_objectiveMember);try{this.enterOuterAlt(e,1),this.state=4399,this.memberPrefix(),this.state=4400,this.match(r.OBJECTIVE),this.state=4401,this.objectiveRequirementUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}objectiveRequirementUsage(){let e=new md(this.context,this.state);this.enterRule(e,904,r.RULE_objectiveRequirementUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4406,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4403,this.usageExtensionKeyword(),this.state=4408,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4409,this.constraintUsageDeclaration(),this.state=4410,this.requirementBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}analysisCaseDefinition(){let e=new xd(this.context,this.state);this.enterRule(e,906,r.RULE_analysisCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4412,this.occurrenceDefinitionPrefix(),this.state=4413,this.match(r.ANALYSIS),this.state=4414,this.match(r.DEF),this.state=4415,this.definitionDeclaration(),this.state=4416,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}analysisCaseUsage(){let e=new bd(this.context,this.state);this.enterRule(e,908,r.RULE_analysisCaseUsage);try{this.enterOuterAlt(e,1),this.state=4418,this.occurrenceUsagePrefix(),this.state=4419,this.match(r.ANALYSIS),this.state=4420,this.constraintUsageDeclaration(),this.state=4421,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}verificationCaseDefinition(){let e=new gd(this.context,this.state);this.enterRule(e,910,r.RULE_verificationCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4423,this.occurrenceDefinitionPrefix(),this.state=4424,this.match(r.VERIFICATION),this.state=4425,this.match(r.DEF),this.state=4426,this.definitionDeclaration(),this.state=4427,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}verificationCaseUsage(){let e=new Rd(this.context,this.state);this.enterRule(e,912,r.RULE_verificationCaseUsage);try{this.enterOuterAlt(e,1),this.state=4429,this.occurrenceUsagePrefix(),this.state=4430,this.match(r.VERIFICATION),this.state=4431,this.constraintUsageDeclaration(),this.state=4432,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementVerificationMember(){let e=new yd(this.context,this.state);this.enterRule(e,914,r.RULE_requirementVerificationMember);try{this.enterOuterAlt(e,1),this.state=4434,this.memberPrefix(),this.state=4435,this.match(r.VERIFY),this.state=4436,this.requirementVerificationUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}requirementVerificationUsage(){let e=new Cd(this.context,this.state);this.enterRule(e,916,r.RULE_requirementVerificationUsage);let t;try{switch(this.state=4464,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1);{for(this.state=4438,this.ownedReferenceSubsetting(),this.state=4442,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===42||t===47||(t-125&-32)===0&&(1<<t-125&8388617)!==0||(t-158&-32)===0&&(1<<t-158&1208352769)!==0||t===204;)this.state=4439,this.featureSpecialization(),this.state=4444,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4445,this.requirementBody()}break;case r.REQUIREMENT:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4459,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,479,this.context)){case 1:{for(this.state=4450,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4447,this.usageExtensionKeyword(),this.state=4452,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4453,this.match(r.REQUIREMENT)}break;case 2:{this.state=4455,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4454,this.usageExtensionKeyword(),this.state=4457,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4461,this.constraintUsageDeclaration(),this.state=4462,this.requirementBody()}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}useCaseDefinition(){let e=new vd(this.context,this.state);this.enterRule(e,918,r.RULE_useCaseDefinition);try{this.enterOuterAlt(e,1),this.state=4466,this.occurrenceDefinitionPrefix(),this.state=4467,this.match(r.USE),this.state=4468,this.match(r.CASE),this.state=4469,this.match(r.DEF),this.state=4470,this.definitionDeclaration(),this.state=4471,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}useCaseUsage(){let e=new Ed(this.context,this.state);this.enterRule(e,920,r.RULE_useCaseUsage);try{this.enterOuterAlt(e,1),this.state=4473,this.occurrenceUsagePrefix(),this.state=4474,this.match(r.USE),this.state=4475,this.match(r.CASE),this.state=4476,this.constraintUsageDeclaration(),this.state=4477,this.caseBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}includeUseCaseUsage(){let e=new Ld(this.context,this.state);this.enterRule(e,922,r.RULE_includeUseCaseUsage);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4479,this.occurrenceUsagePrefix(),this.state=4480,this.match(r.INCLUDE),this.state=4490,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.state=4481,this.ownedReferenceSubsetting(),this.state=4483,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4482,this.featureSpecializationPart());break;case r.USE:this.state=4485,this.match(r.USE),this.state=4486,this.match(r.CASE),this.state=4488,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4487,this.usageDeclaration());break;default:throw new j(this)}this.state=4493,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4492,this.valuePart()),this.state=4495,this.caseBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewDefinition(){let e=new Sd(this.context,this.state);this.enterRule(e,924,r.RULE_viewDefinition);try{this.enterOuterAlt(e,1),this.state=4497,this.occurrenceDefinitionPrefix(),this.state=4498,this.match(r.VIEW),this.state=4499,this.match(r.DEF),this.state=4500,this.definitionDeclaration(),this.state=4501,this.viewDefinitionBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewDefinitionBody(){let e=new Pd(this.context,this.state);this.enterRule(e,926,r.RULE_viewDefinitionBody);let t;try{switch(this.state=4512,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4503,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4504,this.match(r.LBRACE),this.state=4508,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&490981169)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3203643665)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4505,this.viewDefinitionBodyItem(),this.state=4510,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4511,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewDefinitionBodyItem(){let e=new Oo(this.context,this.state);this.enterRule(e,928,r.RULE_viewDefinitionBodyItem);try{switch(this.state=4517,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,487,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4514,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4515,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4516,this.viewRenderingMember();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewRenderingMember(){let e=new Io(this.context,this.state);this.enterRule(e,930,r.RULE_viewRenderingMember);try{this.enterOuterAlt(e,1),this.state=4519,this.memberPrefix(),this.state=4520,this.match(r.RENDER),this.state=4521,this.viewRenderingUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewRenderingUsage(){let e=new Td(this.context,this.state);this.enterRule(e,932,r.RULE_viewRenderingUsage);let t;try{switch(this.state=4544,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.DOLLAR:case r.IDENTIFIER:case r.STRING:this.enterOuterAlt(e,1),this.state=4523,this.ownedReferenceSubsetting(),this.state=4525,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4524,this.featureSpecializationPart()),this.state=4527,this.usageBody();break;case r.RENDERING:case r.HASH:this.enterOuterAlt(e,2);{switch(this.state=4541,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,491,this.context)){case 1:{for(this.state=4532,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4529,this.usageExtensionKeyword(),this.state=4534,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4535,this.match(r.RENDERING)}break;case 2:{this.state=4537,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4536,this.usageExtensionKeyword(),this.state=4539,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192)}break}this.state=4543,this.usage()}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewUsage(){let e=new ko(this.context,this.state);this.enterRule(e,934,r.RULE_viewUsage);let t;try{this.enterOuterAlt(e,1),this.state=4546,this.occurrenceUsagePrefix(),this.state=4547,this.match(r.VIEW),this.state=4549,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4548,this.usageDeclaration()),this.state=4552,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4551,this.valuePart()),this.state=4554,this.viewBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewBody(){let e=new Ad(this.context,this.state);this.enterRule(e,936,r.RULE_viewBody);let t;try{switch(this.state=4565,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.SEMI:this.enterOuterAlt(e,1),this.state=4556,this.match(r.SEMI);break;case r.LBRACE:this.enterOuterAlt(e,2);{for(this.state=4557,this.match(r.LBRACE),this.state=4561,this.errorHandler.sync(this),t=this.tokenStream.LA(1);(t&-32)===0&&(1<<t&1181240980)!==0||(t-32&-32)===0&&(1<<t-32&1564722993)!==0||(t-68&-32)===0&&(1<<t-68&2390947847)!==0||(t-102&-32)===0&&(1<<t-102&3203643665)!==0||(t-135&-32)===0&&(1<<t-135&3901137093)!==0||(t-169&-32)===0&&(1<<t-169&9011395)!==0||(t-204&-32)===0&&(1<<t-204&574671)!==0;)this.state=4558,this.viewBodyItem(),this.state=4563,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4564,this.match(r.RBRACE)}break;default:throw new j(this)}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}viewBodyItem(){let e=new Fo(this.context,this.state);this.enterRule(e,938,r.RULE_viewBodyItem);try{switch(this.state=4571,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,497,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4567,this.definitionBodyItem();break;case 2:this.enterOuterAlt(e,2),this.state=4568,this.elementFilterMember();break;case 3:this.enterOuterAlt(e,3),this.state=4569,this.viewRenderingMember();break;case 4:this.enterOuterAlt(e,4),this.state=4570,this.expose();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}expose(){let e=new Md(this.context,this.state);this.enterRule(e,940,r.RULE_expose);try{this.enterOuterAlt(e,1);{switch(this.state=4573,this.match(r.EXPOSE),this.state=4576,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,498,this.context)){case 1:this.state=4574,this.membershipExpose();break;case 2:this.state=4575,this.namespaceExpose();break}this.state=4578,this.relationshipBody()}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}membershipExpose(){let e=new Nd(this.context,this.state);this.enterRule(e,942,r.RULE_membershipExpose);try{this.enterOuterAlt(e,1),this.state=4580,this.membershipImport()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceExpose(){let e=new Ud(this.context,this.state);this.enterRule(e,944,r.RULE_namespaceExpose);try{this.enterOuterAlt(e,1),this.state=4582,this.namespaceImport()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewpointDefinition(){let e=new wd(this.context,this.state);this.enterRule(e,946,r.RULE_viewpointDefinition);try{this.enterOuterAlt(e,1),this.state=4584,this.occurrenceDefinitionPrefix(),this.state=4585,this.match(r.VIEWPOINT),this.state=4586,this.match(r.DEF),this.state=4587,this.definitionDeclaration(),this.state=4588,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}viewpointUsage(){let e=new Dd(this.context,this.state);this.enterRule(e,948,r.RULE_viewpointUsage);try{this.enterOuterAlt(e,1),this.state=4590,this.occurrenceUsagePrefix(),this.state=4591,this.match(r.VIEWPOINT),this.state=4592,this.constraintUsageDeclaration(),this.state=4593,this.requirementBody()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}renderingDefinition(){let e=new Od(this.context,this.state);this.enterRule(e,950,r.RULE_renderingDefinition);try{this.enterOuterAlt(e,1),this.state=4595,this.occurrenceDefinitionPrefix(),this.state=4596,this.match(r.RENDERING),this.state=4597,this.match(r.DEF),this.state=4598,this.definition()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}renderingUsage(){let e=new Ho(this.context,this.state);this.enterRule(e,952,r.RULE_renderingUsage);try{this.enterOuterAlt(e,1),this.state=4600,this.occurrenceUsagePrefix(),this.state=4601,this.match(r.RENDERING),this.state=4602,this.usage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataDefinition(){let e=new Id(this.context,this.state);this.enterRule(e,954,r.RULE_metadataDefinition);let t;try{this.enterOuterAlt(e,1);{for(this.state=4605,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===2&&(this.state=4604,this.match(r.ABSTRACT)),this.state=4610,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4607,this.definitionExtensionKeyword(),this.state=4612,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4613,this.match(r.METADATA),this.state=4614,this.match(r.DEF),this.state=4615,this.definition()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}prefixMetadataUsage(){let e=new Bo(this.context,this.state);this.enterRule(e,956,r.RULE_prefixMetadataUsage);try{this.enterOuterAlt(e,1),this.state=4617,this.ownedFeatureTyping()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataUsage(){let e=new l4(this.context,this.state);this.enterRule(e,958,r.RULE_metadataUsage);let t;try{this.enterOuterAlt(e,1);{for(this.state=4622,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===192;)this.state=4619,this.usageExtensionKeyword(),this.state=4624,this.errorHandler.sync(this),t=this.tokenStream.LA(1);if(this.state=4625,t=this.tokenStream.LA(1),t===102||t===210?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this),this.state=4626,this.metadataUsageDeclaration(),this.state=4636,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===1)for(this.state=4627,this.match(r.ABOUT),this.state=4628,this.annotation(),this.state=4633,this.errorHandler.sync(this),t=this.tokenStream.LA(1);t===200;)this.state=4629,this.match(r.COMMA),this.state=4630,this.annotation(),this.state=4635,this.errorHandler.sync(this),t=this.tokenStream.LA(1);this.state=4638,this.metadataBody()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataUsageDeclaration(){let e=new kd(this.context,this.state);this.enterRule(e,960,r.RULE_metadataUsageDeclaration);let t;try{this.enterOuterAlt(e,1);{switch(this.state=4648,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,506,this.context)){case 1:switch(this.state=4641,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t-206&-32)===0&&(1<<t-206&12289)!==0&&(this.state=4640,this.identification()),this.state=4646,this.errorHandler.sync(this),this.tokenStream.LA(1)){case r.COLON:this.state=4643,this.match(r.COLON);break;case r.TYPED:this.state=4644,this.match(r.TYPED),this.state=4645,this.match(r.BY);break;default:throw new j(this)}break}this.state=4650,this.ownedFeatureTyping()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}metadataBodyUsageMember(){let e=new _o(this.context,this.state);this.enterRule(e,962,r.RULE_metadataBodyUsageMember);try{this.enterOuterAlt(e,1),this.state=4652,this.metadataBodyUsage()}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}metadataBodyUsage(){let e=new Fd(this.context,this.state);this.enterRule(e,964,r.RULE_metadataBodyUsage);let t;try{this.enterOuterAlt(e,1),this.state=4655,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===127&&(this.state=4654,this.match(r.REF)),this.state=4658,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===125||t===176)&&(this.state=4657,t=this.tokenStream.LA(1),t===125||t===176?(this.errorHandler.reportMatch(this),this.consume()):this.errorHandler.recoverInline(this)),this.state=4660,this.ownedRedefinition(),this.state=4662,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&67633161)!==0)&&(this.state=4661,this.featureSpecializationPart()),this.state=4665,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4664,this.valuePart()),this.state=4667,this.metadataBody()}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}extendedDefinition(){let e=new Hd(this.context,this.state);this.enterRule(e,966,r.RULE_extendedDefinition);let t;try{this.enterOuterAlt(e,1);{this.state=4670,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===2||t===165)&&(this.state=4669,this.basicDefinitionPrefix()),this.state=4673,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4672,this.definitionExtensionKeyword(),this.state=4675,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192);this.state=4677,this.match(r.DEF),this.state=4678,this.definition()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}extendedUsage(){let e=new Bd(this.context,this.state);this.enterRule(e,968,r.RULE_extendedUsage);let t;try{this.enterOuterAlt(e,1);{this.state=4680,this.unextendedUsagePrefix(),this.state=4682,this.errorHandler.sync(this),t=this.tokenStream.LA(1);do this.state=4681,this.usageExtensionKeyword(),this.state=4684,this.errorHandler.sync(this),t=this.tokenStream.LA(1);while(t===192);this.state=4686,this.usage()}}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}filterPackageImportDeclaration(){let e=new _d(this.context,this.state);this.enterRule(e,970,r.RULE_filterPackageImportDeclaration);try{switch(this.state=4690,this.errorHandler.sync(this),this.interpreter.adaptivePredict(this.tokenStream,514,this.context)){case 1:this.enterOuterAlt(e,1),this.state=4688,this.membershipImport();break;case 2:this.enterOuterAlt(e,2),this.state=4689,this.namespaceImportDirect();break}}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}namespaceImportDirect(){let e=new Vd(this.context,this.state);this.enterRule(e,972,r.RULE_namespaceImportDirect);let t;try{this.enterOuterAlt(e,1),this.state=4692,this.qualifiedName(),this.state=4693,this.match(r.COLON_COLON),this.state=4694,this.match(r.STAR),this.state=4697,this.errorHandler.sync(this),t=this.tokenStream.LA(1),t===183&&(this.state=4695,this.match(r.COLON_COLON),this.state=4696,this.match(r.STAR_STAR))}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}calculationUsageDeclaration(){let e=new qd(this.context,this.state);this.enterRule(e,974,r.RULE_calculationUsageDeclaration);let t;try{this.enterOuterAlt(e,1),this.state=4700,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===42||t===47||(t-106&-32)===0&&(1<<t-106&4718721)!==0||(t-148&-32)===0&&(1<<t-148&402654209)!==0||(t-185&-32)===0&&(1<<t-185&69730313)!==0||t===218||t===219)&&(this.state=4699,this.usageDeclaration()),this.state=4703,this.errorHandler.sync(this),t=this.tokenStream.LA(1),(t===46||t===184||t===207)&&(this.state=4702,this.valuePart())}catch(i){if(i instanceof c)this.errorHandler.reportError(this,i),this.errorHandler.recover(this,i);else throw i}finally{this.exitRule()}return e}emptyActionUsage_(){let e=new Vo(this.context,this.state);this.enterRule(e,976,r.RULE_emptyActionUsage_);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyFeature_(){let e=new qo(this.context,this.state);this.enterRule(e,978,r.RULE_emptyFeature_);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyMultiplicity_(){let e=new jd(this.context,this.state);this.enterRule(e,980,r.RULE_emptyMultiplicity_);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}emptyUsage_(){let e=new Gd(this.context,this.state);this.enterRule(e,982,r.RULE_emptyUsage_);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}filterPackageImport(){let e=new Wd(this.context,this.state);this.enterRule(e,984,r.RULE_filterPackageImport);try{this.enterOuterAlt(e,1),this.state=4713,this.match(r.IDENTIFIER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}nonFeatureChainPrimaryExpression(){let e=new zd(this.context,this.state);this.enterRule(e,986,r.RULE_nonFeatureChainPrimaryExpression);try{this.enterOuterAlt(e,1),this.state=4715,this.match(r.IDENTIFIER)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}portConjugation(){let e=new Kd(this.context,this.state);this.enterRule(e,988,r.RULE_portConjugation);try{this.enterOuterAlt(e,1)}catch(t){if(t instanceof c)this.errorHandler.reportError(this,t),this.errorHandler.recover(this,t);else throw t}finally{this.exitRule()}return e}sempred(e,t,i){return t===0?this.ownedExpression_sempred(e,i):!0}ownedExpression_sempred(e,t){switch(t){case 0:return this.precpred(this.context,27);case 1:return this.precpred(this.context,26);case 2:return this.precpred(this.context,25);case 3:return this.precpred(this.context,24);case 4:return this.precpred(this.context,23);case 5:return this.precpred(this.context,22);case 6:return this.precpred(this.context,21);case 7:return this.precpred(this.context,20);case 8:return this.precpred(this.context,19);case 9:return this.precpred(this.context,18);case 10:return this.precpred(this.context,17);case 11:return this.precpred(this.context,16);case 12:return this.precpred(this.context,15);case 13:return this.precpred(this.context,12);case 14:return this.precpred(this.context,11);case 15:return this.precpred(this.context,10);case 16:return this.precpred(this.context,9);case 17:return this.precpred(this.context,8);case 18:return this.precpred(this.context,7);case 19:return this.precpred(this.context,6);case 20:return this.precpred(this.context,5);case 21:return this.precpred(this.context,4);case 22:return this.precpred(this.context,3)}return!0}static _serializedATN=[4,1,225,4720,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,493,7,493,2,494,7,494,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1006,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1062,8,0,1,0,1,0,1,0,1,0,1,0,3,0,1069,8,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,1085,8,0,5,0,1087,8,0,10,0,12,0,1090,9,0,1,1,1,1,1,2,1,2,1,2,5,2,1097,8,2,10,2,12,2,1100,9,2,1,3,1,3,1,3,1,3,1,3,1,3,3,3,1108,8,3,1,3,1,3,1,3,1,3,3,3,1114,8,3,1,3,3,3,1117,8,3,1,4,1,4,1,4,3,4,1122,8,4,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,3,10,1144,8,10,1,10,1,10,1,11,1,11,1,11,5,11,1151,8,11,10,11,12,11,1154,9,11,1,12,1,12,1,12,5,12,1159,8,12,10,12,12,12,1162,9,12,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,3,14,1173,8,14,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,20,1,20,1,21,1,21,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,3,23,1201,8,23,1,24,1,24,1,24,5,24,1206,8,24,10,24,12,24,1209,9,24,1,24,1,24,1,24,5,24,1214,8,24,10,24,12,24,1217,9,24,1,24,3,24,1220,8,24,1,25,1,25,3,25,1224,8,25,1,26,1,26,3,26,1228,8,26,1,27,5,27,1231,8,27,10,27,12,27,1234,9,27,1,27,1,27,3,27,1238,8,27,1,27,3,27,1241,8,27,1,27,1,27,1,27,5,27,1246,8,27,10,27,12,27,1249,9,27,1,27,1,27,1,27,1,27,5,27,1255,8,27,10,27,12,27,1258,9,27,1,27,1,27,1,27,5,27,1263,8,27,10,27,12,27,1266,9,27,1,27,1,27,1,27,1,27,3,27,1272,8,27,1,28,1,28,1,29,1,29,1,30,1,30,1,30,1,30,3,30,1282,8,30,1,31,1,31,3,31,1286,8,31,1,31,1,31,1,31,1,31,5,31,1292,8,31,10,31,12,31,1295,9,31,3,31,1297,8,31,3,31,1299,8,31,1,31,1,31,3,31,1303,8,31,1,31,1,31,1,32,1,32,3,32,1309,8,32,1,32,1,32,3,32,1313,8,32,1,32,1,32,1,33,1,33,3,33,1319,8,33,3,33,1321,8,33,1,33,1,33,1,33,1,33,1,34,5,34,1328,8,34,10,34,12,34,1331,9,34,1,34,1,34,1,35,5,35,1336,8,35,10,35,12,35,1339,9,35,1,35,1,35,1,35,1,36,1,36,3,36,1346,8,36,1,37,1,37,1,37,5,37,1351,8,37,10,37,12,37,1354,9,37,1,37,3,37,1357,8,37,1,38,1,38,1,38,3,38,1362,8,38,1,39,3,39,1365,8,39,1,40,1,40,1,41,1,41,3,41,1371,8,41,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,3,44,1385,8,44,1,44,3,44,1388,8,44,1,44,1,44,1,44,1,44,1,45,1,45,3,45,1396,8,45,1,45,1,45,1,45,5,45,1401,8,45,10,45,12,45,1404,9,45,1,45,1,45,1,46,3,46,1409,8,46,1,46,1,46,3,46,1413,8,46,1,46,1,46,1,46,1,47,1,47,3,47,1420,8,47,1,48,1,48,1,48,3,48,1425,8,48,1,49,1,49,1,49,1,49,1,49,3,49,1432,8,49,1,49,3,49,1435,8,49,1,50,1,50,4,50,1439,8,50,11,50,12,50,1440,1,50,1,50,4,50,1445,8,50,11,50,12,50,1446,3,50,1449,8,50,1,51,1,51,1,51,1,51,1,52,1,52,3,52,1457,8,52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,3,53,1485,8,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,3,54,1497,8,54,1,55,1,55,1,55,1,55,1,55,1,56,3,56,1505,8,56,1,56,5,56,1508,8,56,10,56,12,56,1511,9,56,1,57,3,57,1514,8,57,1,57,3,57,1517,8,57,1,57,3,57,1520,8,57,1,57,1,57,4,57,1524,8,57,11,57,12,57,1525,1,57,5,57,1529,8,57,10,57,12,57,1532,9,57,1,58,1,58,1,58,1,58,5,58,1538,8,58,10,58,12,58,1541,9,58,1,59,1,59,1,59,1,60,1,60,1,60,1,60,3,60,1550,8,60,1,61,1,61,1,61,1,61,1,61,5,61,1557,8,61,10,61,12,61,1560,9,61,1,62,1,62,1,62,1,62,5,62,1566,8,62,10,62,12,62,1569,9,62,1,63,1,63,1,63,1,63,5,63,1575,8,63,10,63,12,63,1578,9,63,1,64,1,64,1,64,1,64,5,64,1584,8,64,10,64,12,64,1587,9,64,1,65,1,65,1,65,5,65,1592,8,65,10,65,12,65,1595,9,65,1,65,3,65,1598,8,65,1,66,1,66,1,66,1,66,3,66,1604,8,66,1,67,1,67,3,67,1608,8,67,3,67,1610,8,67,1,67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,69,1,69,1,69,5,69,1623,8,69,10,69,12,69,1626,9,69,1,70,1,70,1,70,5,70,1631,8,70,10,70,12,70,1634,9,70,1,71,1,71,3,71,1638,8,71,3,71,1640,8,71,1,71,1,71,1,71,1,71,5,71,1646,8,71,10,71,12,71,1649,9,71,1,71,1,71,1,71,1,71,5,71,1655,8,71,10,71,12,71,1658,9,71,1,71,1,71,1,72,1,72,1,72,5,72,1665,8,72,10,72,12,72,1668,9,72,1,73,1,73,3,73,1672,8,73,3,73,1674,8,73,1,73,1,73,1,73,1,73,5,73,1680,8,73,10,73,12,73,1683,9,73,1,73,1,73,1,73,1,73,5,73,1689,8,73,10,73,12,73,1692,9,73,1,73,1,73,1,74,1,74,1,74,5,74,1699,8,74,10,74,12,74,1702,9,74,1,75,1,75,1,75,5,75,1707,8,75,10,75,12,75,1710,9,75,1,76,1,76,1,76,5,76,1715,8,76,10,76,12,76,1718,9,76,1,77,1,77,1,77,5,77,1723,8,77,10,77,12,77,1726,9,77,1,78,1,78,3,78,1730,8,78,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,82,3,82,1745,8,82,1,82,3,82,1748,8,82,1,82,3,82,1751,8,82,1,82,1,82,3,82,1755,8,82,1,82,5,82,1758,8,82,10,82,12,82,1761,9,82,1,83,1,83,1,83,1,83,5,83,1767,8,83,10,83,12,83,1770,9,83,1,84,1,84,3,84,1774,8,84,3,84,1776,8,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,86,1,86,1,86,3,86,1789,8,86,1,86,3,86,1792,8,86,1,86,1,86,3,86,1796,8,86,1,86,1,86,3,86,1800,8,86,1,86,3,86,1803,8,86,1,86,1,86,1,87,3,87,1808,8,87,1,87,1,87,1,88,3,88,1813,8,88,1,88,3,88,1816,8,88,1,88,3,88,1819,8,88,1,88,3,88,1822,8,88,1,88,3,88,1825,8,88,1,89,1,89,1,89,1,89,3,89,1831,8,89,1,89,5,89,1834,8,89,10,89,12,89,1837,9,89,1,90,1,90,1,91,1,91,1,91,1,91,1,91,3,91,1846,8,91,3,91,1848,8,91,1,92,1,92,1,93,3,93,1853,8,93,1,93,1,93,1,93,3,93,1858,8,93,1,93,1,93,3,93,1862,8,93,1,93,5,93,1865,8,93,10,93,12,93,1868,9,93,1,94,1,94,1,94,1,94,3,94,1874,8,94,1,94,3,94,1877,8,94,1,95,1,95,1,95,1,95,3,95,1883,8,95,1,96,1,96,1,96,1,96,5,96,1889,8,96,10,96,12,96,1892,9,96,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,5,98,1903,8,98,10,98,12,98,1906,9,98,1,99,4,99,1909,8,99,11,99,12,99,1910,1,99,3,99,1914,8,99,1,99,5,99,1917,8,99,10,99,12,99,1920,9,99,1,99,1,99,5,99,1924,8,99,10,99,12,99,1927,9,99,3,99,1929,8,99,1,100,1,100,1,100,3,100,1934,8,100,1,100,1,100,3,100,1938,8,100,3,100,1940,8,100,1,100,1,100,3,100,1944,8,100,1,100,1,100,3,100,1948,8,100,3,100,1950,8,100,3,100,1952,8,100,1,101,1,101,1,101,1,101,1,101,3,101,1959,8,101,1,102,1,102,1,102,5,102,1964,8,102,10,102,12,102,1967,9,102,1,103,1,103,1,103,1,103,1,103,3,103,1974,8,103,1,103,1,103,1,104,1,104,1,104,5,104,1981,8,104,10,104,12,104,1984,9,104,1,105,1,105,1,105,1,106,1,106,1,106,1,107,1,107,1,107,1,108,1,108,1,108,5,108,1998,8,108,10,108,12,108,2001,9,108,1,109,1,109,1,109,1,110,1,110,3,110,2008,8,110,3,110,2010,8,110,1,110,1,110,1,110,1,110,1,110,3,110,2017,8,110,1,110,1,110,1,110,1,110,1,110,3,110,2024,8,110,1,111,1,111,1,111,5,111,2029,8,111,10,111,12,111,2032,9,111,1,112,1,112,3,112,2036,8,112,3,112,2038,8,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,5,113,2049,8,113,10,113,12,113,2052,9,113,1,114,1,114,1,114,5,114,2057,8,114,10,114,12,114,2060,9,114,1,115,1,115,1,115,5,115,2065,8,115,10,115,12,115,2068,9,115,1,116,1,116,3,116,2072,8,116,3,116,2074,8,116,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,5,117,2085,8,117,10,117,12,117,2088,9,117,1,118,1,118,1,118,1,118,4,118,2094,8,118,11,118,12,118,2095,3,118,2098,8,118,1,119,1,119,1,119,4,119,2103,8,119,11,119,12,119,2104,1,120,1,120,1,121,1,121,3,121,2111,8,121,3,121,2113,8,121,1,121,1,121,1,121,1,121,5,121,2119,8,121,10,121,12,121,2122,9,121,1,121,1,121,1,121,1,121,5,121,2128,8,121,10,121,12,121,2131,9,121,1,121,1,121,1,122,1,122,1,122,5,122,2138,8,122,10,122,12,122,2141,9,122,1,123,1,123,3,123,2145,8,123,1,123,3,123,2148,8,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,3,130,2186,8,130,1,130,3,130,2189,8,130,1,130,3,130,2192,8,130,1,130,1,130,1,131,1,131,3,131,2198,8,131,1,132,3,132,2201,8,132,1,132,1,132,1,132,3,132,2206,8,132,3,132,2208,8,132,1,132,1,132,1,132,1,132,1,133,3,133,2215,8,133,1,133,1,133,1,133,1,133,1,133,1,133,5,133,2223,8,133,10,133,12,133,2226,9,133,1,133,1,133,1,134,1,134,1,135,3,135,2233,8,135,1,135,1,135,1,135,3,135,2238,8,135,1,135,1,135,1,136,1,136,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,3,139,2257,8,139,1,139,3,139,2260,8,139,1,139,3,139,2263,8,139,1,139,1,139,1,139,1,139,3,139,2269,8,139,3,139,2271,8,139,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,3,141,2284,8,141,1,141,3,141,2287,8,141,1,141,3,141,2290,8,141,1,141,1,141,1,141,1,141,3,141,2296,8,141,3,141,2298,8,141,1,142,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,3,143,2309,8,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,3,145,2323,8,145,1,146,1,146,5,146,2327,8,146,10,146,12,146,2330,9,146,1,146,3,146,2333,8,146,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,149,1,149,1,149,1,149,3,149,2346,8,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,3,151,2359,8,151,1,151,1,151,1,152,1,152,1,152,3,152,2366,8,152,1,152,1,152,3,152,2370,8,152,1,152,1,152,1,153,1,153,1,154,1,154,1,155,1,155,1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,1,159,1,159,1,160,1,160,1,161,1,161,1,162,1,162,1,163,1,163,1,164,1,164,1,165,1,165,1,166,1,166,1,167,1,167,1,168,1,168,1,169,1,169,1,170,1,170,1,170,5,170,2413,8,170,10,170,12,170,2416,9,170,1,171,1,171,3,171,2420,8,171,1,172,1,172,1,173,1,173,1,174,1,174,1,175,1,175,1,176,1,176,1,177,1,177,1,177,5,177,2435,8,177,10,177,12,177,2438,9,177,1,178,1,178,1,179,1,179,1,180,1,180,1,181,1,181,1,182,1,182,1,182,1,182,1,183,1,183,1,184,3,184,2455,8,184,1,184,1,184,1,184,3,184,2460,8,184,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,3,188,2480,8,188,1,188,1,188,3,188,2484,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2491,8,188,1,188,3,188,2494,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2501,8,188,1,188,3,188,2504,8,188,1,188,1,188,3,188,2508,8,188,1,188,1,188,1,188,1,188,1,188,3,188,2515,8,188,3,188,2517,8,188,1,189,1,189,1,190,3,190,2522,8,190,1,190,1,190,3,190,2526,8,190,1,190,1,190,3,190,2530,8,190,1,190,1,190,3,190,2534,8,190,1,190,1,190,3,190,2538,8,190,3,190,2540,8,190,1,191,4,191,2543,8,191,11,191,12,191,2544,1,191,3,191,2548,8,191,1,191,5,191,2551,8,191,10,191,12,191,2554,9,191,1,191,1,191,4,191,2558,8,191,11,191,12,191,2559,3,191,2562,8,191,1,192,1,192,1,193,1,193,1,193,5,193,2569,8,193,10,193,12,193,2572,9,193,1,194,1,194,1,195,1,195,1,196,1,196,1,197,1,197,1,198,1,198,1,198,1,198,3,198,2586,8,198,3,198,2588,8,198,1,198,1,198,1,199,1,199,3,199,2594,8,199,1,200,1,200,3,200,2598,8,200,1,200,1,200,1,200,1,201,1,201,3,201,2605,8,201,1,201,1,201,1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,204,1,204,3,204,2618,8,204,1,204,1,204,1,204,1,205,1,205,3,205,2625,8,205,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,3,207,2636,8,207,1,208,1,208,1,208,1,208,3,208,2642,8,208,1,209,1,209,1,210,5,210,2647,8,210,10,210,12,210,2650,9,210,1,210,1,210,1,210,1,210,1,210,1,210,5,210,2658,8,210,10,210,12,210,2661,9,210,3,210,2663,8,210,1,210,1,210,1,211,3,211,2668,8,211,1,211,1,211,1,211,3,211,2673,8,211,3,211,2675,8,211,1,211,1,211,1,212,1,212,1,212,5,212,2682,8,212,10,212,12,212,2685,9,212,1,212,1,212,1,212,1,212,1,212,1,212,5,212,2693,8,212,10,212,12,212,2696,9,212,1,212,3,212,2699,8,212,1,213,1,213,1,213,1,213,3,213,2705,8,213,1,214,1,214,1,215,3,215,2710,8,215,1,215,3,215,2713,8,215,1,215,1,215,3,215,2717,8,215,1,215,3,215,2720,8,215,1,215,1,215,1,216,5,216,2725,8,216,10,216,12,216,2728,9,216,1,216,1,216,1,216,1,217,3,217,2734,8,217,1,217,1,217,5,217,2738,8,217,10,217,12,217,2741,9,217,1,217,1,217,1,217,1,218,1,218,3,218,2748,8,218,1,219,1,219,1,219,5,219,2753,8,219,10,219,12,219,2756,9,219,1,219,3,219,2759,8,219,1,220,1,220,1,220,1,220,1,220,1,221,3,221,2767,8,221,1,221,3,221,2770,8,221,1,221,1,221,1,221,5,221,2775,8,221,10,221,12,221,2778,9,221,1,221,1,221,1,221,1,221,5,221,2784,8,221,10,221,12,221,2787,9,221,1,222,1,222,1,223,1,223,1,223,1,223,3,223,2795,8,223,1,224,1,224,1,224,3,224,2800,8,224,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,1,225,3,225,2832,8,225,1,226,1,226,3,226,2836,8,226,1,227,1,227,1,228,1,228,1,229,3,229,2843,8,229,1,229,5,229,2846,8,229,10,229,12,229,2849,9,229,1,230,1,230,1,230,1,231,3,231,2855,8,231,1,231,3,231,2858,8,231,1,232,1,232,1,232,5,232,2863,8,232,10,232,12,232,2866,9,232,1,232,3,232,2869,8,232,1,233,1,233,1,233,1,233,1,233,3,233,2876,8,233,1,233,1,233,1,233,3,233,2881,8,233,1,234,1,234,1,234,1,234,1,234,3,234,2888,8,234,1,234,3,234,2891,8,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,3,234,2901,8,234,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,237,1,237,1,237,1,238,1,238,1,238,1,239,1,239,1,239,1,240,1,240,1,240,1,241,3,241,2923,8,241,1,241,3,241,2926,8,241,1,241,3,241,2929,8,241,1,241,3,241,2932,8,241,1,242,1,242,3,242,2936,8,242,1,243,1,243,1,243,1,244,1,244,1,245,1,245,3,245,2945,8,245,1,246,1,246,5,246,2949,8,246,10,246,12,246,2952,9,246,1,247,3,247,2955,8,247,1,247,1,247,1,248,1,248,3,248,2961,8,248,1,248,3,248,2964,8,248,1,249,3,249,2967,8,249,1,249,1,249,1,250,1,250,1,251,1,251,1,251,1,252,1,252,3,252,2978,8,252,1,252,1,252,1,252,1,253,1,253,1,253,1,253,1,254,1,254,5,254,2989,8,254,10,254,12,254,2992,9,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,3,255,3004,8,255,1,256,1,256,3,256,3008,8,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,3,257,3025,8,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,3,258,3043,8,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,3,259,3066,8,259,1,260,1,260,1,260,1,260,5,260,3072,8,260,10,260,12,260,3075,9,260,1,261,1,261,1,261,1,261,1,261,1,262,1,262,1,262,1,262,1,263,5,263,3087,8,263,10,263,12,263,3090,9,263,1,263,1,263,1,263,1,263,1,263,1,264,1,264,1,264,1,264,5,264,3101,8,264,10,264,12,264,3104,9,264,1,264,3,264,3107,8,264,1,265,1,265,1,265,1,266,3,266,3113,8,266,1,266,1,266,1,267,1,267,1,267,1,267,1,268,3,268,3122,8,268,1,268,1,268,3,268,3126,8,268,1,268,5,268,3129,8,268,10,268,12,268,3132,9,268,1,269,1,269,1,269,1,269,1,269,1,270,3,270,3140,8,270,1,270,1,270,5,270,3144,8,270,10,270,12,270,3147,9,270,1,270,1,270,1,270,1,270,1,271,1,271,1,272,1,272,3,272,3157,8,272,1,272,3,272,3160,8,272,1,272,5,272,3163,8,272,10,272,12,272,3166,9,272,1,273,1,273,1,273,1,273,1,274,1,274,1,274,5,274,3175,8,274,10,274,12,274,3178,9,274,1,274,1,274,1,275,1,275,3,275,3184,8,275,1,275,1,275,5,275,3188,8,275,10,275,12,275,3191,9,275,1,275,1,275,1,276,1,276,1,277,1,277,1,277,1,277,3,277,3201,8,277,1,277,1,277,3,277,3205,8,277,3,277,3207,8,277,1,277,1,277,1,278,1,278,1,278,1,279,1,279,1,280,1,280,1,281,3,281,3219,8,281,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,286,1,286,1,286,1,287,1,287,1,288,1,288,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,3,292,3264,8,292,1,292,3,292,3267,8,292,1,292,1,292,3,292,3271,8,292,1,292,1,292,3,292,3275,8,292,1,292,1,292,1,293,1,293,3,293,3281,8,293,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,295,5,295,3293,8,295,10,295,12,295,3296,9,295,1,295,1,295,1,296,1,296,1,296,3,296,3303,8,296,3,296,3305,8,296,1,296,1,296,1,296,1,296,1,296,1,296,1,297,1,297,1,297,3,297,3316,8,297,3,297,3318,8,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,299,1,299,1,299,5,299,3335,8,299,10,299,12,299,3338,9,299,1,299,3,299,3341,8,299,1,300,1,300,1,300,1,300,3,300,3347,8,300,1,300,1,300,1,300,3,300,3352,8,300,1,301,1,301,1,301,1,302,1,302,1,302,1,302,1,302,3,302,3362,8,302,1,303,1,303,1,303,1,304,1,304,1,304,3,304,3370,8,304,1,305,1,305,1,305,1,306,1,306,1,306,1,306,1,306,1,307,3,307,3381,8,307,1,307,3,307,3384,8,307,1,307,1,307,3,307,3388,8,307,1,307,3,307,3391,8,307,1,308,1,308,3,308,3395,8,308,1,309,1,309,1,309,1,309,1,310,1,310,1,310,1,310,1,310,1,310,5,310,3407,8,310,10,310,12,310,3410,9,310,1,310,1,310,1,311,1,311,1,312,3,312,3417,8,312,1,312,1,312,1,312,3,312,3422,8,312,1,312,1,312,1,313,1,313,1,313,1,313,1,313,1,314,1,314,1,314,1,314,1,315,1,315,3,315,3437,8,315,1,315,1,315,3,315,3441,8,315,1,315,1,315,3,315,3445,8,315,1,316,1,316,1,316,1,316,1,316,1,317,1,317,1,317,1,317,1,317,1,318,3,318,3458,8,318,1,318,3,318,3461,8,318,1,318,1,318,3,318,3465,8,318,1,318,1,318,1,318,1,318,1,318,3,318,3472,8,318,1,318,1,318,1,318,1,318,3,318,3478,8,318,1,319,1,319,1,320,1,320,1,321,1,321,1,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,1,322,1,323,1,323,1,324,1,324,1,325,1,325,3,325,3501,8,325,1,326,1,326,1,326,4,326,3506,8,326,11,326,12,326,3507,1,326,1,326,1,326,1,327,1,327,1,327,1,327,1,327,1,327,1,328,1,328,1,328,5,328,3522,8,328,10,328,12,328,3525,9,328,1,328,3,328,3528,8,328,1,329,1,329,1,329,5,329,3533,8,329,10,329,12,329,3536,9,329,1,329,3,329,3539,8,329,1,329,1,329,5,329,3543,8,329,10,329,12,329,3546,9,329,1,329,3,329,3549,8,329,1,330,1,330,1,330,1,330,1,330,1,330,3,330,3557,8,330,1,330,3,330,3560,8,330,1,331,1,331,3,331,3564,8,331,1,332,1,332,1,332,1,332,1,332,1,333,1,333,1,333,1,334,1,334,1,334,1,335,1,335,1,335,1,336,1,336,1,336,1,336,1,336,1,337,3,337,3586,8,337,1,337,3,337,3589,8,337,1,338,1,338,1,338,1,338,1,338,1,339,1,339,3,339,3598,8,339,1,339,1,339,3,339,3602,8,339,3,339,3604,8,339,1,339,3,339,3607,8,339,1,340,1,340,1,340,1,340,1,340,1,340,1,340,1,340,3,340,3617,8,340,1,341,1,341,3,341,3621,8,341,1,342,1,342,3,342,3625,8,342,1,343,1,343,1,343,1,343,3,343,3631,8,343,1,344,1,344,3,344,3635,8,344,1,344,3,344,3638,8,344,1,344,5,344,3641,8,344,10,344,12,344,3644,9,344,1,345,1,345,1,345,3,345,3649,8,345,1,345,1,345,1,346,1,346,1,346,3,346,3656,8,346,1,346,1,346,1,347,1,347,1,347,3,347,3663,8,347,1,347,1,347,1,348,1,348,1,348,3,348,3670,8,348,1,348,1,348,1,349,1,349,1,349,1,349,1,350,3,350,3679,8,350,1,350,1,350,1,350,1,351,1,351,1,351,3,351,3687,8,351,1,352,1,352,1,353,1,353,3,353,3693,8,353,1,353,3,353,3696,8,353,1,353,3,353,3699,8,353,1,354,1,354,1,355,1,355,1,356,1,356,1,356,1,356,3,356,3709,8,356,1,357,1,357,1,357,3,357,3714,8,357,1,357,1,357,1,357,3,357,3719,8,357,1,357,1,357,1,357,3,357,3724,8,357,1,357,1,357,1,358,3,358,3729,8,358,1,358,1,358,1,358,3,358,3734,8,358,1,359,1,359,1,359,1,359,3,359,3740,8,359,1,359,1,359,1,359,1,359,3,359,3746,8,359,1,360,1,360,1,361,1,361,1,362,1,362,1,363,1,363,1,364,1,364,1,364,1,364,1,365,3,365,3761,8,365,1,365,1,365,1,365,1,365,1,365,1,365,1,366,1,366,1,367,1,367,1,367,3,367,3774,8,367,1,368,1,368,1,369,1,369,3,369,3780,8,369,1,369,1,369,3,369,3784,8,369,1,369,1,369,1,370,1,370,1,370,1,370,1,370,1,370,1,370,3,370,3795,8,370,3,370,3797,8,370,1,371,1,371,1,372,1,372,1,373,1,373,3,373,3805,8,373,3,373,3807,8,373,1,373,1,373,5,373,3811,8,373,10,373,12,373,3814,9,373,1,373,1,373,1,374,1,374,1,375,1,375,1,375,1,375,1,375,3,375,3825,8,375,1,375,1,375,1,375,1,375,1,375,3,375,3832,8,375,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,377,3,377,3842,8,377,1,378,3,378,3845,8,378,1,379,1,379,1,379,3,379,3850,8,379,1,379,1,379,1,380,1,380,1,380,1,380,1,381,1,381,1,381,1,381,1,382,1,382,1,382,1,383,1,383,3,383,3867,8,383,3,383,3869,8,383,1,383,1,383,1,383,1,383,1,383,1,383,1,383,1,384,1,384,1,384,1,384,1,384,1,384,1,385,1,385,3,385,3886,8,385,1,385,1,385,5,385,3890,8,385,10,385,12,385,3893,9,385,1,385,3,385,3896,8,385,1,386,1,386,3,386,3900,8,386,1,386,1,386,5,386,3904,8,386,10,386,12,386,3907,9,386,1,386,1,386,1,386,5,386,3912,8,386,10,386,12,386,3915,9,386,1,386,1,386,3,386,3919,8,386,1,387,1,387,1,387,1,387,1,388,1,388,1,388,1,388,1,389,1,389,1,389,1,389,1,390,1,390,1,390,1,390,3,390,3937,8,390,1,390,1,390,1,391,1,391,1,391,1,391,1,391,1,391,1,391,3,391,3948,8,391,1,392,1,392,1,392,1,393,1,393,1,393,1,394,1,394,1,394,1,395,1,395,1,395,1,396,1,396,1,396,1,397,1,397,1,397,1,398,1,398,1,398,1,398,1,398,1,399,1,399,3,399,3975,8,399,1,399,1,399,5,399,3979,8,399,10,399,12,399,3982,9,399,1,399,3,399,3985,8,399,1,400,1,400,1,400,1,400,3,400,3991,8,400,1,400,1,400,3,400,3995,8,400,3,400,3997,8,400,1,400,3,400,4e3,8,400,1,400,1,400,1,401,1,401,3,401,4006,8,401,1,401,3,401,4009,8,401,1,401,1,401,1,401,1,401,1,401,3,401,4016,8,401,1,401,3,401,4019,8,401,1,401,3,401,4022,8,401,1,401,1,401,1,401,1,401,1,402,1,402,1,402,1,402,1,402,3,402,4033,8,402,1,402,3,402,4036,8,402,1,402,3,402,4039,8,402,1,402,1,402,1,402,3,402,4044,8,402,1,402,3,402,4047,8,402,1,402,1,402,3,402,4051,8,402,3,402,4053,8,402,1,402,1,402,1,402,1,402,1,403,1,403,1,403,1,404,1,404,1,405,1,405,1,405,1,406,1,406,1,406,1,407,1,407,1,407,1,407,1,407,3,407,4075,8,407,1,408,1,408,1,408,5,408,4080,8,408,10,408,12,408,4083,9,408,1,408,3,408,4086,8,408,1,409,1,409,1,409,5,409,4091,8,409,10,409,12,409,4094,9,409,1,409,3,409,4097,8,409,1,410,1,410,1,410,5,410,4102,8,410,10,410,12,410,4105,9,410,1,410,3,410,4108,8,410,1,411,1,411,1,411,5,411,4113,8,411,10,411,12,411,4116,9,411,1,411,3,411,4119,8,411,1,412,1,412,1,413,1,413,1,413,1,414,1,414,1,415,1,415,1,415,1,415,1,415,1,415,1,416,1,416,1,416,1,416,1,416,1,417,1,417,1,417,1,417,1,417,3,417,4144,8,417,1,418,5,418,4147,8,418,10,418,12,418,4150,9,418,1,418,3,418,4153,8,418,1,419,1,419,3,419,4157,8,419,1,420,1,420,1,420,1,420,1,421,1,421,1,421,1,421,1,421,1,421,1,422,1,422,1,422,1,422,1,422,1,423,1,423,1,423,3,423,4177,8,423,1,423,1,423,3,423,4181,8,423,1,423,1,423,3,423,4185,8,423,1,423,1,423,1,424,3,424,4190,8,424,1,424,3,424,4193,8,424,1,425,1,425,1,425,1,425,1,425,1,425,1,426,1,426,1,426,5,426,4204,8,426,10,426,12,426,4207,9,426,1,426,3,426,4210,8,426,1,427,1,427,1,427,1,427,1,427,1,427,1,427,3,427,4219,8,427,1,428,1,428,1,428,1,429,1,429,5,429,4226,8,429,10,429,12,429,4229,9,429,1,429,1,429,1,430,1,430,1,430,1,430,1,431,1,431,1,432,1,432,3,432,4241,8,432,1,432,1,432,1,432,5,432,4246,8,432,10,432,12,432,4249,9,432,1,432,1,432,4,432,4253,8,432,11,432,12,432,4254,3,432,4257,8,432,1,432,1,432,1,432,3,432,4262,8,432,1,433,1,433,1,433,1,433,1,434,1,434,3,434,4270,8,434,1,434,1,434,1,434,5,434,4275,8,434,10,434,12,434,4278,9,434,1,434,1,434,4,434,4282,8,434,11,434,12,434,4283,3,434,4286,8,434,1,434,1,434,1,434,3,434,4291,8,434,1,435,1,435,1,435,1,436,1,436,5,436,4298,8,436,10,436,12,436,4301,9,436,1,436,1,436,1,437,1,437,1,437,1,438,1,438,5,438,4310,8,438,10,438,12,438,4313,9,438,1,438,1,438,1,439,1,439,1,439,1,439,1,439,1,440,1,440,1,440,3,440,4325,8,440,3,440,4327,8,440,1,440,1,440,1,440,3,440,4332,8,440,1,440,1,440,3,440,4336,8,440,3,440,4338,8,440,1,440,3,440,4341,8,440,1,440,1,440,3,440,4345,8,440,1,440,1,440,1,441,1,441,1,442,1,442,1,443,1,443,1,444,1,444,1,445,1,445,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,1,446,1,447,1,447,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,1,448,1,449,1,449,1,449,5,449,4382,8,449,10,449,12,449,4385,9,449,1,449,3,449,4388,8,449,1,449,3,449,4391,8,449,1,450,1,450,1,450,1,450,1,450,3,450,4398,8,450,1,451,1,451,1,451,1,451,1,452,5,452,4405,8,452,10,452,12,452,4408,9,452,1,452,1,452,1,452,1,453,1,453,1,453,1,453,1,453,1,453,1,454,1,454,1,454,1,454,1,454,1,455,1,455,1,455,1,455,1,455,1,455,1,456,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,458,1,458,5,458,4441,8,458,10,458,12,458,4444,9,458,1,458,1,458,1,458,5,458,4449,8,458,10,458,12,458,4452,9,458,1,458,1,458,4,458,4456,8,458,11,458,12,458,4457,3,458,4460,8,458,1,458,1,458,1,458,3,458,4465,8,458,1,459,1,459,1,459,1,459,1,459,1,459,1,459,1,460,1,460,1,460,1,460,1,460,1,460,1,461,1,461,1,461,1,461,3,461,4484,8,461,1,461,1,461,1,461,3,461,4489,8,461,3,461,4491,8,461,1,461,3,461,4494,8,461,1,461,1,461,1,462,1,462,1,462,1,462,1,462,1,462,1,463,1,463,1,463,5,463,4507,8,463,10,463,12,463,4510,9,463,1,463,3,463,4513,8,463,1,464,1,464,1,464,3,464,4518,8,464,1,465,1,465,1,465,1,465,1,466,1,466,3,466,4526,8,466,1,466,1,466,1,466,5,466,4531,8,466,10,466,12,466,4534,9,466,1,466,1,466,4,466,4538,8,466,11,466,12,466,4539,3,466,4542,8,466,1,466,3,466,4545,8,466,1,467,1,467,1,467,3,467,4550,8,467,1,467,3,467,4553,8,467,1,467,1,467,1,468,1,468,1,468,5,468,4560,8,468,10,468,12,468,4563,9,468,1,468,3,468,4566,8,468,1,469,1,469,1,469,1,469,3,469,4572,8,469,1,470,1,470,1,470,3,470,4577,8,470,1,470,1,470,1,471,1,471,1,472,1,472,1,473,1,473,1,473,1,473,1,473,1,473,1,474,1,474,1,474,1,474,1,474,1,475,1,475,1,475,1,475,1,475,1,476,1,476,1,476,1,476,1,477,3,477,4606,8,477,1,477,5,477,4609,8,477,10,477,12,477,4612,9,477,1,477,1,477,1,477,1,477,1,478,1,478,1,479,5,479,4621,8,479,10,479,12,479,4624,9,479,1,479,1,479,1,479,1,479,1,479,1,479,5,479,4632,8,479,10,479,12,479,4635,9,479,3,479,4637,8,479,1,479,1,479,1,480,3,480,4642,8,480,1,480,1,480,1,480,3,480,4647,8,480,3,480,4649,8,480,1,480,1,480,1,481,1,481,1,482,3,482,4656,8,482,1,482,3,482,4659,8,482,1,482,1,482,3,482,4663,8,482,1,482,3,482,4666,8,482,1,482,1,482,1,483,3,483,4671,8,483,1,483,4,483,4674,8,483,11,483,12,483,4675,1,483,1,483,1,483,1,484,1,484,4,484,4683,8,484,11,484,12,484,4684,1,484,1,484,1,485,1,485,3,485,4691,8,485,1,486,1,486,1,486,1,486,1,486,3,486,4698,8,486,1,487,3,487,4701,8,487,1,487,3,487,4704,8,487,1,488,1,488,1,489,1,489,1,490,1,490,1,491,1,491,1,492,1,492,1,493,1,493,1,494,1,494,1,494,0,1,0,495,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,0,27,4,0,107,107,199,199,201,201,217,217,2,0,191,191,210,210,3,0,174,174,177,178,187,187,4,0,186,186,189,189,206,206,208,208,2,0,199,199,201,201,3,0,194,194,198,198,203,203,2,0,179,179,213,213,3,0,76,76,90,90,210,210,2,0,64,64,156,156,1,0,218,219,1,0,122,124,2,0,139,139,185,185,2,0,34,34,217,217,2,0,31,31,120,120,2,0,39,39,163,163,3,0,80,80,83,83,114,114,2,0,148,148,185,185,2,0,128,128,175,175,2,0,42,42,188,188,2,0,125,125,176,176,1,0,221,222,2,0,184,184,207,207,2,0,102,102,210,210,2,0,2,2,165,165,2,0,137,137,153,153,2,0,6,6,18,18,2,0,17,17,132,132,4968,0,1005,1,0,0,0,2,1091,1,0,0,0,4,1093,1,0,0,0,6,1116,1,0,0,0,8,1121,1,0,0,0,10,1123,1,0,0,0,12,1125,1,0,0,0,14,1129,1,0,0,0,16,1132,1,0,0,0,18,1136,1,0,0,0,20,1140,1,0,0,0,22,1147,1,0,0,0,24,1155,1,0,0,0,26,1163,1,0,0,0,28,1172,1,0,0,0,30,1174,1,0,0,0,32,1176,1,0,0,0,34,1178,1,0,0,0,36,1180,1,0,0,0,38,1182,1,0,0,0,40,1184,1,0,0,0,42,1186,1,0,0,0,44,1188,1,0,0,0,46,1200,1,0,0,0,48,1219,1,0,0,0,50,1223,1,0,0,0,52,1227,1,0,0,0,54,1271,1,0,0,0,56,1273,1,0,0,0,58,1275,1,0,0,0,60,1281,1,0,0,0,62,1298,1,0,0,0,64,1306,1,0,0,0,66,1320,1,0,0,0,68,1329,1,0,0,0,70,1337,1,0,0,0,72,1343,1,0,0,0,74,1356,1,0,0,0,76,1361,1,0,0,0,78,1364,1,0,0,0,80,1366,1,0,0,0,82,1370,1,0,0,0,84,1372,1,0,0,0,86,1375,1,0,0,0,88,1378,1,0,0,0,90,1395,1,0,0,0,92,1408,1,0,0,0,94,1419,1,0,0,0,96,1421,1,0,0,0,98,1434,1,0,0,0,100,1448,1,0,0,0,102,1450,1,0,0,0,104,1456,1,0,0,0,106,1484,1,0,0,0,108,1496,1,0,0,0,110,1498,1,0,0,0,112,1504,1,0,0,0,114,1513,1,0,0,0,116,1533,1,0,0,0,118,1542,1,0,0,0,120,1549,1,0,0,0,122,1551,1,0,0,0,124,1561,1,0,0,0,126,1570,1,0,0,0,128,1579,1,0,0,0,130,1597,1,0,0,0,132,1603,1,0,0,0,134,1609,1,0,0,0,136,1617,1,0,0,0,138,1619,1,0,0,0,140,1627,1,0,0,0,142,1639,1,0,0,0,144,1661,1,0,0,0,146,1673,1,0,0,0,148,1695,1,0,0,0,150,1703,1,0,0,0,152,1711,1,0,0,0,154,1719,1,0,0,0,156,1729,1,0,0,0,158,1731,1,0,0,0,160,1735,1,0,0,0,162,1738,1,0,0,0,164,1744,1,0,0,0,166,1762,1,0,0,0,168,1775,1,0,0,0,170,1783,1,0,0,0,172,1799,1,0,0,0,174,1807,1,0,0,0,176,1812,1,0,0,0,178,1830,1,0,0,0,180,1838,1,0,0,0,182,1847,1,0,0,0,184,1849,1,0,0,0,186,1852,1,0,0,0,188,1876,1,0,0,0,190,1882,1,0,0,0,192,1884,1,0,0,0,194,1893,1,0,0,0,196,1897,1,0,0,0,198,1928,1,0,0,0,200,1951,1,0,0,0,202,1958,1,0,0,0,204,1960,1,0,0,0,206,1973,1,0,0,0,208,1977,1,0,0,0,210,1985,1,0,0,0,212,1988,1,0,0,0,214,1991,1,0,0,0,216,1994,1,0,0,0,218,2002,1,0,0,0,220,2023,1,0,0,0,222,2025,1,0,0,0,224,2037,1,0,0,0,226,2045,1,0,0,0,228,2053,1,0,0,0,230,2061,1,0,0,0,232,2073,1,0,0,0,234,2081,1,0,0,0,236,2097,1,0,0,0,238,2099,1,0,0,0,240,2106,1,0,0,0,242,2112,1,0,0,0,244,2134,1,0,0,0,246,2142,1,0,0,0,248,2154,1,0,0,0,250,2156,1,0,0,0,252,2161,1,0,0,0,254,2166,1,0,0,0,256,2171,1,0,0,0,258,2176,1,0,0,0,260,2182,1,0,0,0,262,2197,1,0,0,0,264,2207,1,0,0,0,266,2214,1,0,0,0,268,2229,1,0,0,0,270,2232,1,0,0,0,272,2241,1,0,0,0,274,2243,1,0,0,0,276,2245,1,0,0,0,278,2270,1,0,0,0,280,2272,1,0,0,0,282,2297,1,0,0,0,284,2299,1,0,0,0,286,2304,1,0,0,0,288,2312,1,0,0,0,290,2322,1,0,0,0,292,2328,1,0,0,0,294,2334,1,0,0,0,296,2338,1,0,0,0,298,2341,1,0,0,0,300,2349,1,0,0,0,302,2354,1,0,0,0,304,2362,1,0,0,0,306,2373,1,0,0,0,308,2375,1,0,0,0,310,2377,1,0,0,0,312,2379,1,0,0,0,314,2381,1,0,0,0,316,2383,1,0,0,0,318,2385,1,0,0,0,320,2389,1,0,0,0,322,2391,1,0,0,0,324,2393,1,0,0,0,326,2395,1,0,0,0,328,2397,1,0,0,0,330,2399,1,0,0,0,332,2401,1,0,0,0,334,2403,1,0,0,0,336,2405,1,0,0,0,338,2407,1,0,0,0,340,2409,1,0,0,0,342,2419,1,0,0,0,344,2421,1,0,0,0,346,2423,1,0,0,0,348,2425,1,0,0,0,350,2427,1,0,0,0,352,2429,1,0,0,0,354,2431,1,0,0,0,356,2439,1,0,0,0,358,2441,1,0,0,0,360,2443,1,0,0,0,362,2445,1,0,0,0,364,2447,1,0,0,0,366,2451,1,0,0,0,368,2459,1,0,0,0,370,2461,1,0,0,0,372,2466,1,0,0,0,374,2471,1,0,0,0,376,2516,1,0,0,0,378,2518,1,0,0,0,380,2539,1,0,0,0,382,2561,1,0,0,0,384,2563,1,0,0,0,386,2565,1,0,0,0,388,2573,1,0,0,0,390,2575,1,0,0,0,392,2577,1,0,0,0,394,2579,1,0,0,0,396,2587,1,0,0,0,398,2593,1,0,0,0,400,2595,1,0,0,0,402,2602,1,0,0,0,404,2609,1,0,0,0,406,2611,1,0,0,0,408,2613,1,0,0,0,410,2624,1,0,0,0,412,2626,1,0,0,0,414,2635,1,0,0,0,416,2641,1,0,0,0,418,2643,1,0,0,0,420,2648,1,0,0,0,422,2674,1,0,0,0,424,2698,1,0,0,0,426,2704,1,0,0,0,428,2706,1,0,0,0,430,2709,1,0,0,0,432,2726,1,0,0,0,434,2733,1,0,0,0,436,2745,1,0,0,0,438,2758,1,0,0,0,440,2760,1,0,0,0,442,2769,1,0,0,0,444,2788,1,0,0,0,446,2794,1,0,0,0,448,2796,1,0,0,0,450,2831,1,0,0,0,452,2835,1,0,0,0,454,2837,1,0,0,0,456,2839,1,0,0,0,458,2842,1,0,0,0,460,2850,1,0,0,0,462,2854,1,0,0,0,464,2868,1,0,0,0,466,2880,1,0,0,0,468,2900,1,0,0,0,470,2902,1,0,0,0,472,2905,1,0,0,0,474,2909,1,0,0,0,476,2912,1,0,0,0,478,2915,1,0,0,0,480,2918,1,0,0,0,482,2922,1,0,0,0,484,2933,1,0,0,0,486,2937,1,0,0,0,488,2940,1,0,0,0,490,2944,1,0,0,0,492,2946,1,0,0,0,494,2954,1,0,0,0,496,2963,1,0,0,0,498,2966,1,0,0,0,500,2970,1,0,0,0,502,2972,1,0,0,0,504,2977,1,0,0,0,506,2982,1,0,0,0,508,2986,1,0,0,0,510,3003,1,0,0,0,512,3007,1,0,0,0,514,3024,1,0,0,0,516,3042,1,0,0,0,518,3065,1,0,0,0,520,3067,1,0,0,0,522,3076,1,0,0,0,524,3081,1,0,0,0,526,3088,1,0,0,0,528,3106,1,0,0,0,530,3108,1,0,0,0,532,3112,1,0,0,0,534,3116,1,0,0,0,536,3121,1,0,0,0,538,3133,1,0,0,0,540,3139,1,0,0,0,542,3152,1,0,0,0,544,3154,1,0,0,0,546,3167,1,0,0,0,548,3171,1,0,0,0,550,3181,1,0,0,0,552,3194,1,0,0,0,554,3196,1,0,0,0,556,3210,1,0,0,0,558,3213,1,0,0,0,560,3215,1,0,0,0,562,3218,1,0,0,0,564,3220,1,0,0,0,566,3225,1,0,0,0,568,3229,1,0,0,0,570,3234,1,0,0,0,572,3238,1,0,0,0,574,3244,1,0,0,0,576,3246,1,0,0,0,578,3248,1,0,0,0,580,3252,1,0,0,0,582,3255,1,0,0,0,584,3260,1,0,0,0,586,3280,1,0,0,0,588,3282,1,0,0,0,590,3286,1,0,0,0,592,3299,1,0,0,0,594,3312,1,0,0,0,596,3325,1,0,0,0,598,3340,1,0,0,0,600,3351,1,0,0,0,602,3353,1,0,0,0,604,3361,1,0,0,0,606,3363,1,0,0,0,608,3369,1,0,0,0,610,3371,1,0,0,0,612,3374,1,0,0,0,614,3390,1,0,0,0,616,3394,1,0,0,0,618,3396,1,0,0,0,620,3400,1,0,0,0,622,3413,1,0,0,0,624,3416,1,0,0,0,626,3425,1,0,0,0,628,3430,1,0,0,0,630,3444,1,0,0,0,632,3446,1,0,0,0,634,3451,1,0,0,0,636,3477,1,0,0,0,638,3479,1,0,0,0,640,3481,1,0,0,0,642,3483,1,0,0,0,644,3488,1,0,0,0,646,3494,1,0,0,0,648,3496,1,0,0,0,650,3500,1,0,0,0,652,3505,1,0,0,0,654,3512,1,0,0,0,656,3527,1,0,0,0,658,3548,1,0,0,0,660,3559,1,0,0,0,662,3563,1,0,0,0,664,3565,1,0,0,0,666,3570,1,0,0,0,668,3573,1,0,0,0,670,3576,1,0,0,0,672,3579,1,0,0,0,674,3585,1,0,0,0,676,3590,1,0,0,0,678,3603,1,0,0,0,680,3616,1,0,0,0,682,3618,1,0,0,0,684,3622,1,0,0,0,686,3630,1,0,0,0,688,3632,1,0,0,0,690,3645,1,0,0,0,692,3652,1,0,0,0,694,3659,1,0,0,0,696,3666,1,0,0,0,698,3673,1,0,0,0,700,3678,1,0,0,0,702,3683,1,0,0,0,704,3688,1,0,0,0,706,3698,1,0,0,0,708,3700,1,0,0,0,710,3702,1,0,0,0,712,3708,1,0,0,0,714,3710,1,0,0,0,716,3728,1,0,0,0,718,3745,1,0,0,0,720,3747,1,0,0,0,722,3749,1,0,0,0,724,3751,1,0,0,0,726,3753,1,0,0,0,728,3755,1,0,0,0,730,3760,1,0,0,0,732,3768,1,0,0,0,734,3773,1,0,0,0,736,3775,1,0,0,0,738,3777,1,0,0,0,740,3787,1,0,0,0,742,3798,1,0,0,0,744,3800,1,0,0,0,746,3806,1,0,0,0,748,3817,1,0,0,0,750,3819,1,0,0,0,752,3833,1,0,0,0,754,3841,1,0,0,0,756,3844,1,0,0,0,758,3849,1,0,0,0,760,3853,1,0,0,0,762,3857,1,0,0,0,764,3861,1,0,0,0,766,3868,1,0,0,0,768,3877,1,0,0,0,770,3895,1,0,0,0,772,3918,1,0,0,0,774,3920,1,0,0,0,776,3924,1,0,0,0,778,3928,1,0,0,0,780,3932,1,0,0,0,782,3947,1,0,0,0,784,3949,1,0,0,0,786,3952,1,0,0,0,788,3955,1,0,0,0,790,3958,1,0,0,0,792,3961,1,0,0,0,794,3964,1,0,0,0,796,3967,1,0,0,0,798,3984,1,0,0,0,800,3986,1,0,0,0,802,4003,1,0,0,0,804,4027,1,0,0,0,806,4058,1,0,0,0,808,4061,1,0,0,0,810,4063,1,0,0,0,812,4066,1,0,0,0,814,4074,1,0,0,0,816,4076,1,0,0,0,818,4087,1,0,0,0,820,4098,1,0,0,0,822,4109,1,0,0,0,824,4120,1,0,0,0,826,4122,1,0,0,0,828,4125,1,0,0,0,830,4127,1,0,0,0,832,4133,1,0,0,0,834,4143,1,0,0,0,836,4148,1,0,0,0,838,4156,1,0,0,0,840,4158,1,0,0,0,842,4162,1,0,0,0,844,4168,1,0,0,0,846,4173,1,0,0,0,848,4189,1,0,0,0,850,4194,1,0,0,0,852,4209,1,0,0,0,854,4218,1,0,0,0,856,4220,1,0,0,0,858,4223,1,0,0,0,860,4232,1,0,0,0,862,4236,1,0,0,0,864,4261,1,0,0,0,866,4263,1,0,0,0,868,4290,1,0,0,0,870,4292,1,0,0,0,872,4295,1,0,0,0,874,4304,1,0,0,0,876,4307,1,0,0,0,878,4316,1,0,0,0,880,4321,1,0,0,0,882,4348,1,0,0,0,884,4350,1,0,0,0,886,4352,1,0,0,0,888,4354,1,0,0,0,890,4356,1,0,0,0,892,4362,1,0,0,0,894,4367,1,0,0,0,896,4373,1,0,0,0,898,4390,1,0,0,0,900,4397,1,0,0,0,902,4399,1,0,0,0,904,4406,1,0,0,0,906,4412,1,0,0,0,908,4418,1,0,0,0,910,4423,1,0,0,0,912,4429,1,0,0,0,914,4434,1,0,0,0,916,4464,1,0,0,0,918,4466,1,0,0,0,920,4473,1,0,0,0,922,4479,1,0,0,0,924,4497,1,0,0,0,926,4512,1,0,0,0,928,4517,1,0,0,0,930,4519,1,0,0,0,932,4544,1,0,0,0,934,4546,1,0,0,0,936,4565,1,0,0,0,938,4571,1,0,0,0,940,4573,1,0,0,0,942,4580,1,0,0,0,944,4582,1,0,0,0,946,4584,1,0,0,0,948,4590,1,0,0,0,950,4595,1,0,0,0,952,4600,1,0,0,0,954,4605,1,0,0,0,956,4617,1,0,0,0,958,4622,1,0,0,0,960,4648,1,0,0,0,962,4652,1,0,0,0,964,4655,1,0,0,0,966,4670,1,0,0,0,968,4680,1,0,0,0,970,4690,1,0,0,0,972,4692,1,0,0,0,974,4700,1,0,0,0,976,4705,1,0,0,0,978,4707,1,0,0,0,980,4709,1,0,0,0,982,4711,1,0,0,0,984,4713,1,0,0,0,986,4715,1,0,0,0,988,4717,1,0,0,0,990,991,6,0,-1,0,991,992,5,77,0,0,992,993,3,0,0,0,993,994,5,209,0,0,994,995,3,0,0,0,995,996,5,55,0,0,996,997,3,0,0,28,997,1006,1,0,0,0,998,999,7,0,0,0,999,1006,3,0,0,14,1e3,1001,7,1,0,0,1001,1006,3,2,1,0,1002,1003,5,8,0,0,1003,1006,3,2,1,0,1004,1006,3,6,3,0,1005,990,1,0,0,0,1005,998,1,0,0,0,1005,1e3,1,0,0,0,1005,1002,1,0,0,0,1005,1004,1,0,0,0,1006,1088,1,0,0,0,1007,1008,10,27,0,0,1008,1009,5,190,0,0,1009,1087,3,0,0,28,1010,1011,10,26,0,0,1011,1012,5,78,0,0,1012,1087,3,0,0,27,1013,1014,10,25,0,0,1014,1015,5,112,0,0,1015,1087,3,0,0,26,1016,1017,10,24,0,0,1017,1018,5,12,0,0,1018,1087,3,0,0,25,1019,1020,10,23,0,0,1020,1021,5,173,0,0,1021,1087,3,0,0,24,1022,1023,10,22,0,0,1023,1024,5,215,0,0,1024,1087,3,0,0,23,1025,1026,10,21,0,0,1026,1027,5,195,0,0,1027,1087,3,0,0,22,1028,1029,10,20,0,0,1029,1030,7,2,0,0,1030,1087,3,0,0,21,1031,1032,10,19,0,0,1032,1033,7,3,0,0,1033,1087,3,0,0,20,1034,1035,10,18,0,0,1035,1036,5,181,0,0,1036,1087,3,0,0,19,1037,1038,10,17,0,0,1038,1039,7,4,0,0,1039,1087,3,0,0,18,1040,1041,10,16,0,0,1041,1042,7,5,0,0,1042,1087,3,0,0,17,1043,1044,10,15,0,0,1044,1045,7,6,0,0,1045,1087,3,0,0,15,1046,1047,10,12,0,0,1047,1048,7,7,0,0,1048,1087,3,2,1,0,1049,1050,10,11,0,0,1050,1051,5,13,0,0,1051,1087,3,2,1,0,1052,1053,10,10,0,0,1053,1054,5,191,0,0,1054,1087,3,2,1,0,1055,1056,10,9,0,0,1056,1057,5,100,0,0,1057,1087,3,2,1,0,1058,1059,10,8,0,0,1059,1061,5,211,0,0,1060,1062,3,4,2,0,1061,1060,1,0,0,0,1061,1062,1,0,0,0,1062,1063,1,0,0,0,1063,1087,5,212,0,0,1064,1065,10,7,0,0,1065,1066,5,192,0,0,1066,1068,5,196,0,0,1067,1069,3,4,2,0,1068,1067,1,0,0,0,1068,1069,1,0,0,0,1069,1070,1,0,0,0,1070,1087,5,197,0,0,1071,1072,10,6,0,0,1072,1087,3,20,10,0,1073,1074,10,5,0,0,1074,1075,5,202,0,0,1075,1087,3,90,45,0,1076,1077,10,4,0,0,1077,1078,5,182,0,0,1078,1087,3,18,9,0,1079,1080,10,3,0,0,1080,1081,5,180,0,0,1081,1084,3,90,45,0,1082,1085,3,18,9,0,1083,1085,3,20,10,0,1084,1082,1,0,0,0,1084,1083,1,0,0,0,1085,1087,1,0,0,0,1086,1007,1,0,0,0,1086,1010,1,0,0,0,1086,1013,1,0,0,0,1086,1016,1,0,0,0,1086,1019,1,0,0,0,1086,1022,1,0,0,0,1086,1025,1,0,0,0,1086,1028,1,0,0,0,1086,1031,1,0,0,0,1086,1034,1,0,0,0,1086,1037,1,0,0,0,1086,1040,1,0,0,0,1086,1043,1,0,0,0,1086,1046,1,0,0,0,1086,1049,1,0,0,0,1086,1052,1,0,0,0,1086,1055,1,0,0,0,1086,1058,1,0,0,0,1086,1064,1,0,0,0,1086,1071,1,0,0,0,1086,1073,1,0,0,0,1086,1076,1,0,0,0,1086,1079,1,0,0,0,1087,1090,1,0,0,0,1088,1086,1,0,0,0,1088,1089,1,0,0,0,1089,1,1,0,0,0,1090,1088,1,0,0,0,1091,1092,3,90,45,0,1092,3,1,0,0,0,1093,1098,3,0,0,0,1094,1095,5,200,0,0,1095,1097,3,0,0,0,1096,1094,1,0,0,0,1097,1100,1,0,0,0,1098,1096,1,0,0,0,1098,1099,1,0,0,0,1099,5,1,0,0,0,1100,1098,1,0,0,0,1101,1117,3,8,4,0,1102,1117,3,28,14,0,1103,1107,3,90,45,0,1104,1108,3,20,10,0,1105,1106,5,202,0,0,1106,1108,5,102,0,0,1107,1104,1,0,0,0,1107,1105,1,0,0,0,1107,1108,1,0,0,0,1108,1117,1,0,0,0,1109,1117,3,16,8,0,1110,1117,3,18,9,0,1111,1113,5,196,0,0,1112,1114,3,4,2,0,1113,1112,1,0,0,0,1113,1114,1,0,0,0,1114,1115,1,0,0,0,1115,1117,5,197,0,0,1116,1101,1,0,0,0,1116,1102,1,0,0,0,1116,1103,1,0,0,0,1116,1109,1,0,0,0,1116,1110,1,0,0,0,1116,1111,1,0,0,0,1117,7,1,0,0,0,1118,1122,5,108,0,0,1119,1120,5,196,0,0,1120,1122,5,197,0,0,1121,1118,1,0,0,0,1121,1119,1,0,0,0,1122,9,1,0,0,0,1123,1124,3,90,45,0,1124,11,1,0,0,0,1125,1126,3,90,45,0,1126,1127,5,202,0,0,1127,1128,5,102,0,0,1128,13,1,0,0,0,1129,1130,3,90,45,0,1130,1131,3,20,10,0,1131,15,1,0,0,0,1132,1133,5,105,0,0,1133,1134,3,90,45,0,1134,1135,3,20,10,0,1135,17,1,0,0,0,1136,1137,5,214,0,0,1137,1138,3,292,146,0,1138,1139,5,216,0,0,1139,19,1,0,0,0,1140,1143,5,196,0,0,1141,1144,3,22,11,0,1142,1144,3,24,12,0,1143,1141,1,0,0,0,1143,1142,1,0,0,0,1143,1144,1,0,0,0,1144,1145,1,0,0,0,1145,1146,5,197,0,0,1146,21,1,0,0,0,1147,1152,3,0,0,0,1148,1149,5,200,0,0,1149,1151,3,0,0,0,1150,1148,1,0,0,0,1151,1154,1,0,0,0,1152,1150,1,0,0,0,1152,1153,1,0,0,0,1153,23,1,0,0,0,1154,1152,1,0,0,0,1155,1160,3,26,13,0,1156,1157,5,200,0,0,1157,1159,3,26,13,0,1158,1156,1,0,0,0,1159,1162,1,0,0,0,1160,1158,1,0,0,0,1160,1161,1,0,0,0,1161,25,1,0,0,0,1162,1160,1,0,0,0,1163,1164,3,90,45,0,1164,1165,5,207,0,0,1165,1166,3,0,0,0,1166,27,1,0,0,0,1167,1173,3,30,15,0,1168,1173,3,32,16,0,1169,1173,3,34,17,0,1170,1173,3,36,18,0,1171,1173,3,38,19,0,1172,1167,1,0,0,0,1172,1168,1,0,0,0,1172,1169,1,0,0,0,1172,1170,1,0,0,0,1172,1171,1,0,0,0,1173,29,1,0,0,0,1174,1175,7,8,0,0,1175,31,1,0,0,0,1176,1177,5,220,0,0,1177,33,1,0,0,0,1178,1179,5,221,0,0,1179,35,1,0,0,0,1180,1181,5,222,0,0,1181,37,1,0,0,0,1182,1183,5,198,0,0,1183,39,1,0,0,0,1184,1185,3,0,0,0,1185,41,1,0,0,0,1186,1187,3,0,0,0,1187,43,1,0,0,0,1188,1189,7,9,0,0,1189,45,1,0,0,0,1190,1191,5,206,0,0,1191,1192,3,44,22,0,1192,1193,5,208,0,0,1193,1194,3,44,22,0,1194,1201,1,0,0,0,1195,1196,5,206,0,0,1196,1197,3,44,22,0,1197,1198,5,208,0,0,1198,1201,1,0,0,0,1199,1201,3,44,22,0,1200,1190,1,0,0,0,1200,1195,1,0,0,0,1200,1199,1,0,0,0,1201,47,1,0,0,0,1202,1220,5,205,0,0,1203,1207,5,214,0,0,1204,1206,3,50,25,0,1205,1204,1,0,0,0,1206,1209,1,0,0,0,1207,1205,1,0,0,0,1207,1208,1,0,0,0,1208,1210,1,0,0,0,1209,1207,1,0,0,0,1210,1220,5,216,0,0,1211,1215,5,214,0,0,1212,1214,3,58,29,0,1213,1212,1,0,0,0,1214,1217,1,0,0,0,1215,1213,1,0,0,0,1215,1216,1,0,0,0,1216,1218,1,0,0,0,1217,1215,1,0,0,0,1218,1220,5,216,0,0,1219,1202,1,0,0,0,1219,1203,1,0,0,0,1219,1211,1,0,0,0,1220,49,1,0,0,0,1221,1224,3,52,26,0,1222,1224,3,58,29,0,1223,1221,1,0,0,0,1223,1222,1,0,0,0,1224,51,1,0,0,0,1225,1228,3,106,53,0,1226,1228,3,108,54,0,1227,1225,1,0,0,0,1227,1226,1,0,0,0,1228,53,1,0,0,0,1229,1231,3,414,207,0,1230,1229,1,0,0,0,1231,1234,1,0,0,0,1232,1230,1,0,0,0,1232,1233,1,0,0,0,1233,1235,1,0,0,0,1234,1232,1,0,0,0,1235,1240,5,48,0,0,1236,1238,3,46,23,0,1237,1236,1,0,0,0,1237,1238,1,0,0,0,1238,1239,1,0,0,0,1239,1241,5,74,0,0,1240,1237,1,0,0,0,1240,1241,1,0,0,0,1241,1242,1,0,0,0,1242,1247,3,90,45,0,1243,1244,5,200,0,0,1244,1246,3,90,45,0,1245,1243,1,0,0,0,1246,1249,1,0,0,0,1247,1245,1,0,0,0,1247,1248,1,0,0,0,1248,1250,1,0,0,0,1249,1247,1,0,0,0,1250,1251,5,154,0,0,1251,1256,3,90,45,0,1252,1253,5,200,0,0,1253,1255,3,90,45,0,1254,1252,1,0,0,0,1255,1258,1,0,0,0,1256,1254,1,0,0,0,1256,1257,1,0,0,0,1257,1259,1,0,0,0,1258,1256,1,0,0,0,1259,1260,3,48,24,0,1260,1272,1,0,0,0,1261,1263,3,414,207,0,1262,1261,1,0,0,0,1263,1266,1,0,0,0,1264,1262,1,0,0,0,1264,1265,1,0,0,0,1265,1267,1,0,0,0,1266,1264,1,0,0,0,1267,1268,5,48,0,0,1268,1269,3,442,221,0,1269,1270,3,48,24,0,1270,1272,1,0,0,0,1271,1232,1,0,0,0,1271,1264,1,0,0,0,1272,55,1,0,0,0,1273,1274,3,90,45,0,1274,57,1,0,0,0,1275,1276,3,60,30,0,1276,59,1,0,0,0,1277,1282,3,62,31,0,1278,1282,3,64,32,0,1279,1282,3,66,33,0,1280,1282,3,420,210,0,1281,1277,1,0,0,0,1281,1278,1,0,0,0,1281,1279,1,0,0,0,1281,1280,1,0,0,0,1282,61,1,0,0,0,1283,1285,5,30,0,0,1284,1286,3,46,23,0,1285,1284,1,0,0,0,1285,1286,1,0,0,0,1286,1296,1,0,0,0,1287,1288,5,1,0,0,1288,1293,3,56,28,0,1289,1290,5,200,0,0,1290,1292,3,56,28,0,1291,1289,1,0,0,0,1292,1295,1,0,0,0,1293,1291,1,0,0,0,1293,1294,1,0,0,0,1294,1297,1,0,0,0,1295,1293,1,0,0,0,1296,1287,1,0,0,0,1296,1297,1,0,0,0,1297,1299,1,0,0,0,1298,1283,1,0,0,0,1298,1299,1,0,0,0,1299,1302,1,0,0,0,1300,1301,5,95,0,0,1301,1303,5,220,0,0,1302,1300,1,0,0,0,1302,1303,1,0,0,0,1303,1304,1,0,0,0,1304,1305,5,223,0,0,1305,63,1,0,0,0,1306,1308,5,54,0,0,1307,1309,3,46,23,0,1308,1307,1,0,0,0,1308,1309,1,0,0,0,1309,1312,1,0,0,0,1310,1311,5,95,0,0,1311,1313,5,220,0,0,1312,1310,1,0,0,0,1312,1313,1,0,0,0,1313,1314,1,0,0,0,1314,1315,5,223,0,0,1315,65,1,0,0,0,1316,1318,5,131,0,0,1317,1319,3,46,23,0,1318,1317,1,0,0,0,1318,1319,1,0,0,0,1319,1321,1,0,0,0,1320,1316,1,0,0,0,1320,1321,1,0,0,0,1321,1322,1,0,0,0,1322,1323,5,93,0,0,1323,1324,5,220,0,0,1324,1325,5,223,0,0,1325,67,1,0,0,0,1326,1328,3,446,223,0,1327,1326,1,0,0,0,1328,1331,1,0,0,0,1329,1327,1,0,0,0,1329,1330,1,0,0,0,1330,1332,1,0,0,0,1331,1329,1,0,0,0,1332,1333,5,0,0,1,1333,69,1,0,0,0,1334,1336,3,416,208,0,1335,1334,1,0,0,0,1336,1339,1,0,0,0,1337,1335,1,0,0,0,1337,1338,1,0,0,0,1338,1340,1,0,0,0,1339,1337,1,0,0,0,1340,1341,3,72,36,0,1341,1342,3,74,37,0,1342,71,1,0,0,0,1343,1345,5,104,0,0,1344,1346,3,46,23,0,1345,1344,1,0,0,0,1345,1346,1,0,0,0,1346,73,1,0,0,0,1347,1357,5,205,0,0,1348,1352,5,214,0,0,1349,1351,3,76,38,0,1350,1349,1,0,0,0,1351,1354,1,0,0,0,1352,1350,1,0,0,0,1352,1353,1,0,0,0,1353,1355,1,0,0,0,1354,1352,1,0,0,0,1355,1357,5,216,0,0,1356,1347,1,0,0,0,1356,1348,1,0,0,0,1357,75,1,0,0,0,1358,1362,3,82,41,0,1359,1362,3,88,44,0,1360,1362,3,92,46,0,1361,1358,1,0,0,0,1361,1359,1,0,0,0,1361,1360,1,0,0,0,1362,77,1,0,0,0,1363,1365,3,80,40,0,1364,1363,1,0,0,0,1364,1365,1,0,0,0,1365,79,1,0,0,0,1366,1367,7,10,0,0,1367,81,1,0,0,0,1368,1371,3,84,42,0,1369,1371,3,86,43,0,1370,1368,1,0,0,0,1370,1369,1,0,0,0,1371,83,1,0,0,0,1372,1373,3,78,39,0,1373,1374,3,104,52,0,1374,85,1,0,0,0,1375,1376,3,78,39,0,1376,1377,3,108,54,0,1377,87,1,0,0,0,1378,1379,3,78,39,0,1379,1384,5,7,0,0,1380,1381,5,206,0,0,1381,1382,3,44,22,0,1382,1383,5,208,0,0,1383,1385,1,0,0,0,1384,1380,1,0,0,0,1384,1385,1,0,0,0,1385,1387,1,0,0,0,1386,1388,3,44,22,0,1387,1386,1,0,0,0,1387,1388,1,0,0,0,1388,1389,1,0,0,0,1389,1390,5,71,0,0,1390,1391,3,90,45,0,1391,1392,3,48,24,0,1392,89,1,0,0,0,1393,1394,5,193,0,0,1394,1396,5,183,0,0,1395,1393,1,0,0,0,1395,1396,1,0,0,0,1396,1402,1,0,0,0,1397,1398,3,44,22,0,1398,1399,5,183,0,0,1399,1401,1,0,0,0,1400,1397,1,0,0,0,1401,1404,1,0,0,0,1402,1400,1,0,0,0,1402,1403,1,0,0,0,1403,1405,1,0,0,0,1404,1402,1,0,0,0,1405,1406,3,44,22,0,1406,91,1,0,0,0,1407,1409,3,80,40,0,1408,1407,1,0,0,0,1408,1409,1,0,0,0,1409,1410,1,0,0,0,1410,1412,5,79,0,0,1411,1413,5,8,0,0,1412,1411,1,0,0,0,1412,1413,1,0,0,0,1413,1414,1,0,0,0,1414,1415,3,94,47,0,1415,1416,3,48,24,0,1416,93,1,0,0,0,1417,1420,3,96,48,0,1418,1420,3,98,49,0,1419,1417,1,0,0,0,1419,1418,1,0,0,0,1420,95,1,0,0,0,1421,1424,3,90,45,0,1422,1423,5,183,0,0,1423,1425,5,179,0,0,1424,1422,1,0,0,0,1424,1425,1,0,0,0,1425,97,1,0,0,0,1426,1427,3,90,45,0,1427,1428,5,183,0,0,1428,1431,5,198,0,0,1429,1430,5,183,0,0,1430,1432,5,179,0,0,1431,1429,1,0,0,0,1431,1432,1,0,0,0,1432,1435,1,0,0,0,1433,1435,3,100,50,0,1434,1426,1,0,0,0,1434,1433,1,0,0,0,1435,99,1,0,0,0,1436,1438,3,970,485,0,1437,1439,3,102,51,0,1438,1437,1,0,0,0,1439,1440,1,0,0,0,1440,1438,1,0,0,0,1440,1441,1,0,0,0,1441,1449,1,0,0,0,1442,1444,3,984,492,0,1443,1445,3,102,51,0,1444,1443,1,0,0,0,1445,1446,1,0,0,0,1446,1444,1,0,0,0,1446,1447,1,0,0,0,1447,1449,1,0,0,0,1448,1436,1,0,0,0,1448,1442,1,0,0,0,1449,101,1,0,0,0,1450,1451,5,211,0,0,1451,1452,3,0,0,0,1452,1453,5,212,0,0,1453,103,1,0,0,0,1454,1457,3,60,30,0,1455,1457,3,106,53,0,1456,1454,1,0,0,0,1456,1455,1,0,0,0,1457,105,1,0,0,0,1458,1485,3,54,27,0,1459,1485,3,70,35,0,1460,1485,3,110,55,0,1461,1485,3,162,81,0,1462,1485,3,250,125,0,1463,1485,3,252,126,0,1464,1485,3,254,127,0,1465,1485,3,412,206,0,1466,1485,3,256,128,0,1467,1485,3,258,129,0,1468,1485,3,370,185,0,1469,1485,3,284,142,0,1470,1485,3,288,144,0,1471,1485,3,300,150,0,1472,1485,3,398,199,0,1473,1485,3,432,216,0,1474,1485,3,434,217,0,1475,1485,3,134,67,0,1476,1485,3,142,71,0,1477,1485,3,168,84,0,1478,1485,3,146,73,0,1479,1485,3,242,121,0,1480,1485,3,220,110,0,1481,1485,3,224,112,0,1482,1485,3,232,116,0,1483,1485,3,246,123,0,1484,1458,1,0,0,0,1484,1459,1,0,0,0,1484,1460,1,0,0,0,1484,1461,1,0,0,0,1484,1462,1,0,0,0,1484,1463,1,0,0,0,1484,1464,1,0,0,0,1484,1465,1,0,0,0,1484,1466,1,0,0,0,1484,1467,1,0,0,0,1484,1468,1,0,0,0,1484,1469,1,0,0,0,1484,1470,1,0,0,0,1484,1471,1,0,0,0,1484,1472,1,0,0,0,1484,1473,1,0,0,0,1484,1474,1,0,0,0,1484,1475,1,0,0,0,1484,1476,1,0,0,0,1484,1477,1,0,0,0,1484,1478,1,0,0,0,1484,1479,1,0,0,0,1484,1480,1,0,0,0,1484,1481,1,0,0,0,1484,1482,1,0,0,0,1484,1483,1,0,0,0,1485,107,1,0,0,0,1486,1497,3,172,86,0,1487,1497,3,286,143,0,1488,1497,3,298,149,0,1489,1497,3,302,151,0,1490,1497,3,304,152,0,1491,1497,3,260,130,0,1492,1497,3,276,138,0,1493,1497,3,280,140,0,1494,1497,3,372,186,0,1495,1497,3,374,187,0,1496,1486,1,0,0,0,1496,1487,1,0,0,0,1496,1488,1,0,0,0,1496,1489,1,0,0,0,1496,1490,1,0,0,0,1496,1491,1,0,0,0,1496,1492,1,0,0,0,1496,1493,1,0,0,0,1496,1494,1,0,0,0,1496,1495,1,0,0,0,1497,109,1,0,0,0,1498,1499,3,112,56,0,1499,1500,5,157,0,0,1500,1501,3,114,57,0,1501,1502,3,130,65,0,1502,111,1,0,0,0,1503,1505,5,2,0,0,1504,1503,1,0,0,0,1504,1505,1,0,0,0,1505,1509,1,0,0,0,1506,1508,3,416,208,0,1507,1506,1,0,0,0,1508,1511,1,0,0,0,1509,1507,1,0,0,0,1509,1510,1,0,0,0,1510,113,1,0,0,0,1511,1509,1,0,0,0,1512,1514,5,8,0,0,1513,1512,1,0,0,0,1513,1514,1,0,0,0,1514,1516,1,0,0,0,1515,1517,3,46,23,0,1516,1515,1,0,0,0,1516,1517,1,0,0,0,1517,1519,1,0,0,0,1518,1520,3,404,202,0,1519,1518,1,0,0,0,1519,1520,1,0,0,0,1520,1523,1,0,0,0,1521,1524,3,116,58,0,1522,1524,3,118,59,0,1523,1521,1,0,0,0,1523,1522,1,0,0,0,1524,1525,1,0,0,0,1525,1523,1,0,0,0,1525,1526,1,0,0,0,1526,1530,1,0,0,0,1527,1529,3,120,60,0,1528,1527,1,0,0,0,1529,1532,1,0,0,0,1530,1528,1,0,0,0,1530,1531,1,0,0,0,1531,115,1,0,0,0,1532,1530,1,0,0,0,1533,1534,7,11,0,0,1534,1539,3,136,68,0,1535,1536,5,200,0,0,1536,1538,3,136,68,0,1537,1535,1,0,0,0,1538,1541,1,0,0,0,1539,1537,1,0,0,0,1539,1540,1,0,0,0,1540,117,1,0,0,0,1541,1539,1,0,0,0,1542,1543,7,12,0,0,1543,1544,3,144,72,0,1544,119,1,0,0,0,1545,1550,3,122,61,0,1546,1550,3,124,62,0,1547,1550,3,126,63,0,1548,1550,3,128,64,0,1549,1545,1,0,0,0,1549,1546,1,0,0,0,1549,1547,1,0,0,0,1549,1548,1,0,0,0,1550,121,1,0,0,0,1551,1552,5,52,0,0,1552,1553,5,74,0,0,1553,1558,3,148,74,0,1554,1555,5,200,0,0,1555,1557,3,148,74,0,1556,1554,1,0,0,0,1557,1560,1,0,0,0,1558,1556,1,0,0,0,1558,1559,1,0,0,0,1559,123,1,0,0,0,1560,1558,1,0,0,0,1561,1562,5,160,0,0,1562,1567,3,150,75,0,1563,1564,5,200,0,0,1564,1566,3,150,75,0,1565,1563,1,0,0,0,1566,1569,1,0,0,0,1567,1565,1,0,0,0,1567,1568,1,0,0,0,1568,125,1,0,0,0,1569,1567,1,0,0,0,1570,1571,5,86,0,0,1571,1576,3,152,76,0,1572,1573,5,200,0,0,1573,1575,3,152,76,0,1574,1572,1,0,0,0,1575,1578,1,0,0,0,1576,1574,1,0,0,0,1576,1577,1,0,0,0,1577,127,1,0,0,0,1578,1576,1,0,0,0,1579,1580,5,50,0,0,1580,1585,3,154,77,0,1581,1582,5,200,0,0,1582,1584,3,154,77,0,1583,1581,1,0,0,0,1584,1587,1,0,0,0,1585,1583,1,0,0,0,1585,1586,1,0,0,0,1586,129,1,0,0,0,1587,1585,1,0,0,0,1588,1598,5,205,0,0,1589,1593,5,214,0,0,1590,1592,3,132,66,0,1591,1590,1,0,0,0,1592,1595,1,0,0,0,1593,1591,1,0,0,0,1593,1594,1,0,0,0,1594,1596,1,0,0,0,1595,1593,1,0,0,0,1596,1598,5,216,0,0,1597,1588,1,0,0,0,1597,1589,1,0,0,0,1598,131,1,0,0,0,1599,1604,3,84,42,0,1600,1604,3,156,78,0,1601,1604,3,88,44,0,1602,1604,3,92,46,0,1603,1599,1,0,0,0,1603,1600,1,0,0,0,1603,1601,1,0,0,0,1603,1602,1,0,0,0,1604,133,1,0,0,0,1605,1607,5,138,0,0,1606,1608,3,46,23,0,1607,1606,1,0,0,0,1607,1608,1,0,0,0,1608,1610,1,0,0,0,1609,1605,1,0,0,0,1609,1610,1,0,0,0,1610,1611,1,0,0,0,1611,1612,5,149,0,0,1612,1613,3,138,69,0,1613,1614,7,11,0,0,1614,1615,3,140,70,0,1615,1616,3,48,24,0,1616,135,1,0,0,0,1617,1618,3,140,70,0,1618,137,1,0,0,0,1619,1624,3,90,45,0,1620,1621,5,202,0,0,1621,1623,3,90,45,0,1622,1620,1,0,0,0,1623,1626,1,0,0,0,1624,1622,1,0,0,0,1624,1625,1,0,0,0,1625,139,1,0,0,0,1626,1624,1,0,0,0,1627,1632,3,90,45,0,1628,1629,5,202,0,0,1629,1631,3,90,45,0,1630,1628,1,0,0,0,1631,1634,1,0,0,0,1632,1630,1,0,0,0,1632,1633,1,0,0,0,1633,141,1,0,0,0,1634,1632,1,0,0,0,1635,1637,5,35,0,0,1636,1638,3,46,23,0,1637,1636,1,0,0,0,1637,1638,1,0,0,0,1638,1640,1,0,0,0,1639,1635,1,0,0,0,1639,1640,1,0,0,0,1640,1641,1,0,0,0,1641,1642,5,33,0,0,1642,1647,3,90,45,0,1643,1644,5,202,0,0,1644,1646,3,90,45,0,1645,1643,1,0,0,0,1646,1649,1,0,0,0,1647,1645,1,0,0,0,1647,1648,1,0,0,0,1648,1650,1,0,0,0,1649,1647,1,0,0,0,1650,1651,7,12,0,0,1651,1656,3,90,45,0,1652,1653,5,202,0,0,1653,1655,3,90,45,0,1654,1652,1,0,0,0,1655,1658,1,0,0,0,1656,1654,1,0,0,0,1656,1657,1,0,0,0,1657,1659,1,0,0,0,1658,1656,1,0,0,0,1659,1660,3,48,24,0,1660,143,1,0,0,0,1661,1666,3,90,45,0,1662,1663,5,202,0,0,1663,1665,3,90,45,0,1664,1662,1,0,0,0,1665,1668,1,0,0,0,1666,1664,1,0,0,0,1666,1667,1,0,0,0,1667,145,1,0,0,0,1668,1666,1,0,0,0,1669,1671,5,51,0,0,1670,1672,3,46,23,0,1671,1670,1,0,0,0,1671,1672,1,0,0,0,1672,1674,1,0,0,0,1673,1669,1,0,0,0,1673,1674,1,0,0,0,1674,1675,1,0,0,0,1675,1676,5,52,0,0,1676,1681,3,90,45,0,1677,1678,5,202,0,0,1678,1680,3,90,45,0,1679,1677,1,0,0,0,1680,1683,1,0,0,0,1681,1679,1,0,0,0,1681,1682,1,0,0,0,1682,1684,1,0,0,0,1683,1681,1,0,0,0,1684,1685,5,74,0,0,1685,1690,3,90,45,0,1686,1687,5,202,0,0,1687,1689,3,90,45,0,1688,1686,1,0,0,0,1689,1692,1,0,0,0,1690,1688,1,0,0,0,1690,1691,1,0,0,0,1691,1693,1,0,0,0,1692,1690,1,0,0,0,1693,1694,3,48,24,0,1694,147,1,0,0,0,1695,1700,3,90,45,0,1696,1697,5,202,0,0,1697,1699,3,90,45,0,1698,1696,1,0,0,0,1699,1702,1,0,0,0,1700,1698,1,0,0,0,1700,1701,1,0,0,0,1701,149,1,0,0,0,1702,1700,1,0,0,0,1703,1708,3,90,45,0,1704,1705,5,202,0,0,1705,1707,3,90,45,0,1706,1704,1,0,0,0,1707,1710,1,0,0,0,1708,1706,1,0,0,0,1708,1709,1,0,0,0,1709,151,1,0,0,0,1710,1708,1,0,0,0,1711,1716,3,90,45,0,1712,1713,5,202,0,0,1713,1715,3,90,45,0,1714,1712,1,0,0,0,1715,1718,1,0,0,0,1716,1714,1,0,0,0,1716,1717,1,0,0,0,1717,153,1,0,0,0,1718,1716,1,0,0,0,1719,1724,3,90,45,0,1720,1721,5,202,0,0,1721,1723,3,90,45,0,1722,1720,1,0,0,0,1723,1726,1,0,0,0,1724,1722,1,0,0,0,1724,1725,1,0,0,0,1725,155,1,0,0,0,1726,1724,1,0,0,0,1727,1730,3,158,79,0,1728,1730,3,160,80,0,1729,1727,1,0,0,0,1729,1728,1,0,0,0,1730,157,1,0,0,0,1731,1732,3,78,39,0,1732,1733,5,97,0,0,1733,1734,3,108,54,0,1734,159,1,0,0,0,1735,1736,3,78,39,0,1736,1737,3,108,54,0,1737,161,1,0,0,0,1738,1739,3,112,56,0,1739,1740,5,29,0,0,1740,1741,3,164,82,0,1741,1742,3,130,65,0,1742,163,1,0,0,0,1743,1745,5,8,0,0,1744,1743,1,0,0,0,1744,1745,1,0,0,0,1745,1747,1,0,0,0,1746,1748,3,46,23,0,1747,1746,1,0,0,0,1747,1748,1,0,0,0,1748,1750,1,0,0,0,1749,1751,3,404,202,0,1750,1749,1,0,0,0,1750,1751,1,0,0,0,1751,1754,1,0,0,0,1752,1755,3,166,83,0,1753,1755,3,118,59,0,1754,1752,1,0,0,0,1754,1753,1,0,0,0,1754,1755,1,0,0,0,1755,1759,1,0,0,0,1756,1758,3,120,60,0,1757,1756,1,0,0,0,1758,1761,1,0,0,0,1759,1757,1,0,0,0,1759,1760,1,0,0,0,1760,165,1,0,0,0,1761,1759,1,0,0,0,1762,1763,7,11,0,0,1763,1768,3,170,85,0,1764,1765,5,200,0,0,1765,1767,3,170,85,0,1766,1764,1,0,0,0,1767,1770,1,0,0,0,1768,1766,1,0,0,0,1768,1769,1,0,0,0,1769,167,1,0,0,0,1770,1768,1,0,0,0,1771,1773,5,138,0,0,1772,1774,3,46,23,0,1773,1772,1,0,0,0,1773,1774,1,0,0,0,1774,1776,1,0,0,0,1775,1771,1,0,0,0,1775,1776,1,0,0,0,1776,1777,1,0,0,0,1777,1778,5,145,0,0,1778,1779,3,90,45,0,1779,1780,7,11,0,0,1780,1781,3,90,45,0,1781,1782,3,48,24,0,1782,169,1,0,0,0,1783,1784,3,90,45,0,1784,171,1,0,0,0,1785,1788,3,178,89,0,1786,1789,5,65,0,0,1787,1789,3,416,208,0,1788,1786,1,0,0,0,1788,1787,1,0,0,0,1789,1791,1,0,0,0,1790,1792,3,186,93,0,1791,1790,1,0,0,0,1791,1792,1,0,0,0,1792,1800,1,0,0,0,1793,1796,3,174,87,0,1794,1796,3,176,88,0,1795,1793,1,0,0,0,1795,1794,1,0,0,0,1796,1797,1,0,0,0,1797,1798,3,186,93,0,1798,1800,1,0,0,0,1799,1785,1,0,0,0,1799,1795,1,0,0,0,1800,1802,1,0,0,0,1801,1803,3,394,197,0,1802,1801,1,0,0,0,1802,1803,1,0,0,0,1803,1804,1,0,0,0,1804,1805,3,130,65,0,1805,173,1,0,0,0,1806,1808,5,39,0,0,1807,1806,1,0,0,0,1807,1808,1,0,0,0,1808,1809,1,0,0,0,1809,1810,5,56,0,0,1810,175,1,0,0,0,1811,1813,3,184,92,0,1812,1811,1,0,0,0,1812,1813,1,0,0,0,1813,1815,1,0,0,0,1814,1816,5,49,0,0,1815,1814,1,0,0,0,1815,1816,1,0,0,0,1816,1818,1,0,0,0,1817,1819,5,2,0,0,1818,1817,1,0,0,0,1818,1819,1,0,0,0,1819,1821,1,0,0,0,1820,1822,7,13,0,0,1821,1820,1,0,0,0,1821,1822,1,0,0,0,1822,1824,1,0,0,0,1823,1825,7,14,0,0,1824,1823,1,0,0,0,1824,1825,1,0,0,0,1825,177,1,0,0,0,1826,1827,3,174,87,0,1827,1828,3,180,90,0,1828,1831,1,0,0,0,1829,1831,3,176,88,0,1830,1826,1,0,0,0,1830,1829,1,0,0,0,1831,1835,1,0,0,0,1832,1834,3,416,208,0,1833,1832,1,0,0,0,1834,1837,1,0,0,0,1835,1833,1,0,0,0,1835,1836,1,0,0,0,1836,179,1,0,0,0,1837,1835,1,0,0,0,1838,1839,3,182,91,0,1839,181,1,0,0,0,1840,1841,3,176,88,0,1841,1842,3,186,93,0,1842,1848,1,0,0,0,1843,1845,3,484,242,0,1844,1846,3,496,248,0,1845,1844,1,0,0,0,1845,1846,1,0,0,0,1846,1848,1,0,0,0,1847,1840,1,0,0,0,1847,1843,1,0,0,0,1848,183,1,0,0,0,1849,1850,7,15,0,0,1850,185,1,0,0,0,1851,1853,5,8,0,0,1852,1851,1,0,0,0,1852,1853,1,0,0,0,1853,1861,1,0,0,0,1854,1857,3,188,94,0,1855,1858,3,198,99,0,1856,1858,3,118,59,0,1857,1855,1,0,0,0,1857,1856,1,0,0,0,1857,1858,1,0,0,0,1858,1862,1,0,0,0,1859,1862,3,198,99,0,1860,1862,3,118,59,0,1861,1854,1,0,0,0,1861,1859,1,0,0,0,1861,1860,1,0,0,0,1862,1866,1,0,0,0,1863,1865,3,190,95,0,1864,1863,1,0,0,0,1865,1868,1,0,0,0,1866,1864,1,0,0,0,1866,1867,1,0,0,0,1867,187,1,0,0,0,1868,1866,1,0,0,0,1869,1870,5,206,0,0,1870,1871,3,44,22,0,1871,1873,5,208,0,0,1872,1874,3,44,22,0,1873,1872,1,0,0,0,1873,1874,1,0,0,0,1874,1877,1,0,0,0,1875,1877,3,44,22,0,1876,1869,1,0,0,0,1876,1875,1,0,0,0,1877,189,1,0,0,0,1878,1883,3,120,60,0,1879,1883,3,192,96,0,1880,1883,3,194,97,0,1881,1883,3,196,98,0,1882,1878,1,0,0,0,1882,1879,1,0,0,0,1882,1880,1,0,0,0,1882,1881,1,0,0,0,1883,191,1,0,0,0,1884,1885,5,27,0,0,1885,1890,3,90,45,0,1886,1887,5,202,0,0,1887,1889,3,90,45,0,1888,1886,1,0,0,0,1889,1892,1,0,0,0,1890,1888,1,0,0,0,1890,1891,1,0,0,0,1891,193,1,0,0,0,1892,1890,1,0,0,0,1893,1894,5,88,0,0,1894,1895,5,111,0,0,1895,1896,3,244,122,0,1896,195,1,0,0,0,1897,1898,5,66,0,0,1898,1899,5,24,0,0,1899,1904,3,248,124,0,1900,1901,5,200,0,0,1901,1903,3,248,124,0,1902,1900,1,0,0,0,1903,1906,1,0,0,0,1904,1902,1,0,0,0,1904,1905,1,0,0,0,1905,197,1,0,0,0,1906,1904,1,0,0,0,1907,1909,3,202,101,0,1908,1907,1,0,0,0,1909,1910,1,0,0,0,1910,1908,1,0,0,0,1910,1911,1,0,0,0,1911,1913,1,0,0,0,1912,1914,3,200,100,0,1913,1912,1,0,0,0,1913,1914,1,0,0,0,1914,1918,1,0,0,0,1915,1917,3,202,101,0,1916,1915,1,0,0,0,1917,1920,1,0,0,0,1918,1916,1,0,0,0,1918,1919,1,0,0,0,1919,1929,1,0,0,0,1920,1918,1,0,0,0,1921,1925,3,200,100,0,1922,1924,3,202,101,0,1923,1922,1,0,0,0,1924,1927,1,0,0,0,1925,1923,1,0,0,0,1925,1926,1,0,0,0,1926,1929,1,0,0,0,1927,1925,1,0,0,0,1928,1908,1,0,0,0,1928,1921,1,0,0,0,1929,199,1,0,0,0,1930,1939,3,404,202,0,1931,1933,5,113,0,0,1932,1934,5,106,0,0,1933,1932,1,0,0,0,1933,1934,1,0,0,0,1934,1940,1,0,0,0,1935,1937,5,106,0,0,1936,1938,5,113,0,0,1937,1936,1,0,0,0,1937,1938,1,0,0,0,1938,1940,1,0,0,0,1939,1931,1,0,0,0,1939,1935,1,0,0,0,1939,1940,1,0,0,0,1940,1952,1,0,0,0,1941,1943,5,113,0,0,1942,1944,5,106,0,0,1943,1942,1,0,0,0,1943,1944,1,0,0,0,1944,1950,1,0,0,0,1945,1947,5,106,0,0,1946,1948,5,113,0,0,1947,1946,1,0,0,0,1947,1948,1,0,0,0,1948,1950,1,0,0,0,1949,1941,1,0,0,0,1949,1945,1,0,0,0,1950,1952,1,0,0,0,1951,1930,1,0,0,0,1951,1949,1,0,0,0,1952,201,1,0,0,0,1953,1959,3,204,102,0,1954,1959,3,208,104,0,1955,1959,3,212,106,0,1956,1959,3,214,107,0,1957,1959,3,216,108,0,1958,1953,1,0,0,0,1958,1954,1,0,0,0,1958,1955,1,0,0,0,1958,1956,1,0,0,0,1958,1957,1,0,0,0,1959,203,1,0,0,0,1960,1965,3,206,103,0,1961,1962,5,200,0,0,1962,1964,3,220,110,0,1963,1961,1,0,0,0,1964,1967,1,0,0,0,1965,1963,1,0,0,0,1965,1966,1,0,0,0,1966,205,1,0,0,0,1967,1965,1,0,0,0,1968,1974,5,204,0,0,1969,1970,5,158,0,0,1970,1974,5,24,0,0,1971,1972,5,47,0,0,1972,1974,5,24,0,0,1973,1968,1,0,0,0,1973,1969,1,0,0,0,1973,1971,1,0,0,0,1974,1975,1,0,0,0,1975,1976,3,220,110,0,1976,207,1,0,0,0,1977,1982,3,210,105,0,1978,1979,5,200,0,0,1979,1981,3,226,113,0,1980,1978,1,0,0,0,1981,1984,1,0,0,0,1982,1980,1,0,0,0,1982,1983,1,0,0,0,1983,209,1,0,0,0,1984,1982,1,0,0,0,1985,1986,7,16,0,0,1986,1987,3,226,113,0,1987,211,1,0,0,0,1988,1989,7,17,0,0,1989,1990,3,228,114,0,1990,213,1,0,0,0,1991,1992,7,18,0,0,1992,1993,3,230,115,0,1993,215,1,0,0,0,1994,1999,3,218,109,0,1995,1996,5,200,0,0,1996,1998,3,234,117,0,1997,1995,1,0,0,0,1998,2001,1,0,0,0,1999,1997,1,0,0,0,1999,2e3,1,0,0,0,2e3,217,1,0,0,0,2001,1999,1,0,0,0,2002,2003,7,19,0,0,2003,2004,3,234,117,0,2004,219,1,0,0,0,2005,2007,5,138,0,0,2006,2008,3,46,23,0,2007,2006,1,0,0,0,2007,2008,1,0,0,0,2008,2010,1,0,0,0,2009,2005,1,0,0,0,2009,2010,1,0,0,0,2010,2011,1,0,0,0,2011,2012,5,159,0,0,2012,2016,3,90,45,0,2013,2017,5,204,0,0,2014,2015,5,158,0,0,2015,2017,5,24,0,0,2016,2013,1,0,0,0,2016,2014,1,0,0,0,2017,2018,1,0,0,0,2018,2019,3,140,70,0,2019,2020,3,48,24,0,2020,2024,1,0,0,0,2021,2024,3,222,111,0,2022,2024,3,580,290,0,2023,2009,1,0,0,0,2023,2021,1,0,0,0,2023,2022,1,0,0,0,2024,221,1,0,0,0,2025,2030,3,90,45,0,2026,2027,5,202,0,0,2027,2029,3,90,45,0,2028,2026,1,0,0,0,2029,2032,1,0,0,0,2030,2028,1,0,0,0,2030,2031,1,0,0,0,2031,223,1,0,0,0,2032,2030,1,0,0,0,2033,2035,5,138,0,0,2034,2036,3,46,23,0,2035,2034,1,0,0,0,2035,2036,1,0,0,0,2036,2038,1,0,0,0,2037,2033,1,0,0,0,2037,2038,1,0,0,0,2038,2039,1,0,0,0,2039,2040,5,147,0,0,2040,2041,3,138,69,0,2041,2042,7,16,0,0,2042,2043,3,140,70,0,2043,2044,3,48,24,0,2044,225,1,0,0,0,2045,2050,3,90,45,0,2046,2047,5,202,0,0,2047,2049,3,90,45,0,2048,2046,1,0,0,0,2049,2052,1,0,0,0,2050,2048,1,0,0,0,2050,2051,1,0,0,0,2051,227,1,0,0,0,2052,2050,1,0,0,0,2053,2058,3,90,45,0,2054,2055,5,202,0,0,2055,2057,3,90,45,0,2056,2054,1,0,0,0,2057,2060,1,0,0,0,2058,2056,1,0,0,0,2058,2059,1,0,0,0,2059,229,1,0,0,0,2060,2058,1,0,0,0,2061,2066,3,90,45,0,2062,2063,5,202,0,0,2063,2065,3,90,45,0,2064,2062,1,0,0,0,2065,2068,1,0,0,0,2066,2064,1,0,0,0,2066,2067,1,0,0,0,2067,231,1,0,0,0,2068,2066,1,0,0,0,2069,2071,5,138,0,0,2070,2072,3,46,23,0,2071,2070,1,0,0,0,2071,2072,1,0,0,0,2072,2074,1,0,0,0,2073,2069,1,0,0,0,2073,2074,1,0,0,0,2074,2075,1,0,0,0,2075,2076,5,126,0,0,2076,2077,3,138,69,0,2077,2078,7,19,0,0,2078,2079,3,140,70,0,2079,2080,3,48,24,0,2080,233,1,0,0,0,2081,2086,3,90,45,0,2082,2083,5,202,0,0,2083,2085,3,90,45,0,2084,2082,1,0,0,0,2085,2088,1,0,0,0,2086,2084,1,0,0,0,2086,2087,1,0,0,0,2087,235,1,0,0,0,2088,2086,1,0,0,0,2089,2098,3,238,119,0,2090,2093,3,240,120,0,2091,2092,5,202,0,0,2092,2094,3,240,120,0,2093,2091,1,0,0,0,2094,2095,1,0,0,0,2095,2093,1,0,0,0,2095,2096,1,0,0,0,2096,2098,1,0,0,0,2097,2089,1,0,0,0,2097,2090,1,0,0,0,2098,237,1,0,0,0,2099,2102,3,240,120,0,2100,2101,5,202,0,0,2101,2103,3,240,120,0,2102,2100,1,0,0,0,2103,2104,1,0,0,0,2104,2102,1,0,0,0,2104,2105,1,0,0,0,2105,239,1,0,0,0,2106,2107,3,90,45,0,2107,241,1,0,0,0,2108,2110,5,89,0,0,2109,2111,3,46,23,0,2110,2109,1,0,0,0,2110,2111,1,0,0,0,2111,2113,1,0,0,0,2112,2108,1,0,0,0,2112,2113,1,0,0,0,2113,2114,1,0,0,0,2114,2115,5,88,0,0,2115,2120,3,90,45,0,2116,2117,5,202,0,0,2117,2119,3,90,45,0,2118,2116,1,0,0,0,2119,2122,1,0,0,0,2120,2118,1,0,0,0,2120,2121,1,0,0,0,2121,2123,1,0,0,0,2122,2120,1,0,0,0,2123,2124,5,111,0,0,2124,2129,3,90,45,0,2125,2126,5,202,0,0,2126,2128,3,90,45,0,2127,2125,1,0,0,0,2128,2131,1,0,0,0,2129,2127,1,0,0,0,2129,2130,1,0,0,0,2130,2132,1,0,0,0,2131,2129,1,0,0,0,2132,2133,3,48,24,0,2133,243,1,0,0,0,2134,2139,3,90,45,0,2135,2136,5,202,0,0,2136,2138,3,90,45,0,2137,2135,1,0,0,0,2138,2141,1,0,0,0,2139,2137,1,0,0,0,2139,2140,1,0,0,0,2140,245,1,0,0,0,2141,2139,1,0,0,0,2142,2147,5,67,0,0,2143,2145,3,46,23,0,2144,2143,1,0,0,0,2144,2145,1,0,0,0,2145,2146,1,0,0,0,2146,2148,5,111,0,0,2147,2144,1,0,0,0,2147,2148,1,0,0,0,2148,2149,1,0,0,0,2149,2150,3,90,45,0,2150,2151,5,24,0,0,2151,2152,3,90,45,0,2152,2153,3,48,24,0,2153,247,1,0,0,0,2154,2155,3,90,45,0,2155,249,1,0,0,0,2156,2157,3,112,56,0,2157,2158,5,43,0,0,2158,2159,3,164,82,0,2159,2160,3,130,65,0,2160,251,1,0,0,0,2161,2162,3,112,56,0,2162,2163,5,28,0,0,2163,2164,3,164,82,0,2164,2165,3,130,65,0,2165,253,1,0,0,0,2166,2167,3,112,56,0,2167,2168,5,144,0,0,2168,2169,3,164,82,0,2169,2170,3,130,65,0,2170,255,1,0,0,0,2171,2172,3,112,56,0,2172,2173,5,16,0,0,2173,2174,3,164,82,0,2174,2175,3,130,65,0,2175,257,1,0,0,0,2176,2177,3,112,56,0,2177,2178,5,16,0,0,2178,2179,5,144,0,0,2179,2180,3,164,82,0,2180,2181,3,130,65,0,2181,259,1,0,0,0,2182,2183,3,178,89,0,2183,2191,5,38,0,0,2184,2186,3,186,93,0,2185,2184,1,0,0,0,2185,2186,1,0,0,0,2186,2188,1,0,0,0,2187,2189,3,394,197,0,2188,2187,1,0,0,0,2188,2189,1,0,0,0,2189,2192,1,0,0,0,2190,2192,3,262,131,0,2191,2185,1,0,0,0,2191,2190,1,0,0,0,2192,2193,1,0,0,0,2193,2194,3,130,65,0,2194,261,1,0,0,0,2195,2198,3,264,132,0,2196,2198,3,266,133,0,2197,2195,1,0,0,0,2197,2196,1,0,0,0,2198,263,1,0,0,0,2199,2201,3,186,93,0,2200,2199,1,0,0,0,2200,2201,1,0,0,0,2201,2202,1,0,0,0,2202,2208,5,74,0,0,2203,2205,5,8,0,0,2204,2206,5,74,0,0,2205,2204,1,0,0,0,2205,2206,1,0,0,0,2206,2208,1,0,0,0,2207,2200,1,0,0,0,2207,2203,1,0,0,0,2207,2208,1,0,0,0,2208,2209,1,0,0,0,2209,2210,3,268,134,0,2210,2211,5,154,0,0,2211,2212,3,268,134,0,2212,265,1,0,0,0,2213,2215,3,186,93,0,2214,2213,1,0,0,0,2214,2215,1,0,0,0,2215,2216,1,0,0,0,2216,2217,5,196,0,0,2217,2218,3,268,134,0,2218,2219,5,200,0,0,2219,2224,3,268,134,0,2220,2221,5,200,0,0,2221,2223,3,268,134,0,2222,2220,1,0,0,0,2223,2226,1,0,0,0,2224,2222,1,0,0,0,2224,2225,1,0,0,0,2225,2227,1,0,0,0,2226,2224,1,0,0,0,2227,2228,5,197,0,0,2228,267,1,0,0,0,2229,2230,3,270,135,0,2230,269,1,0,0,0,2231,2233,3,272,136,0,2232,2231,1,0,0,0,2232,2233,1,0,0,0,2233,2237,1,0,0,0,2234,2235,3,44,22,0,2235,2236,7,17,0,0,2236,2238,1,0,0,0,2237,2234,1,0,0,0,2237,2238,1,0,0,0,2238,2239,1,0,0,0,2239,2240,3,228,114,0,2240,271,1,0,0,0,2241,2242,3,274,137,0,2242,273,1,0,0,0,2243,2244,3,404,202,0,2244,275,1,0,0,0,2245,2246,3,178,89,0,2246,2247,5,22,0,0,2247,2248,3,278,139,0,2248,2249,3,130,65,0,2249,277,1,0,0,0,2250,2256,3,186,93,0,2251,2252,5,111,0,0,2252,2253,3,268,134,0,2253,2254,5,207,0,0,2254,2255,3,268,134,0,2255,2257,1,0,0,0,2256,2251,1,0,0,0,2256,2257,1,0,0,0,2257,2271,1,0,0,0,2258,2260,5,8,0,0,2259,2258,1,0,0,0,2259,2260,1,0,0,0,2260,2268,1,0,0,0,2261,2263,5,111,0,0,2262,2261,1,0,0,0,2262,2263,1,0,0,0,2263,2264,1,0,0,0,2264,2265,3,268,134,0,2265,2266,5,207,0,0,2266,2267,3,268,134,0,2267,2269,1,0,0,0,2268,2262,1,0,0,0,2268,2269,1,0,0,0,2269,2271,1,0,0,0,2270,2250,1,0,0,0,2270,2259,1,0,0,0,2271,279,1,0,0,0,2272,2273,3,178,89,0,2273,2274,5,150,0,0,2274,2275,3,282,141,0,2275,2276,3,130,65,0,2276,281,1,0,0,0,2277,2283,3,186,93,0,2278,2279,5,69,0,0,2279,2280,3,268,134,0,2280,2281,5,152,0,0,2281,2282,3,268,134,0,2282,2284,1,0,0,0,2283,2278,1,0,0,0,2283,2284,1,0,0,0,2284,2298,1,0,0,0,2285,2287,5,8,0,0,2286,2285,1,0,0,0,2286,2287,1,0,0,0,2287,2295,1,0,0,0,2288,2290,5,69,0,0,2289,2288,1,0,0,0,2289,2290,1,0,0,0,2290,2291,1,0,0,0,2291,2292,3,268,134,0,2292,2293,5,152,0,0,2293,2294,3,268,134,0,2294,2296,1,0,0,0,2295,2289,1,0,0,0,2295,2296,1,0,0,0,2296,2298,1,0,0,0,2297,2277,1,0,0,0,2297,2286,1,0,0,0,2298,283,1,0,0,0,2299,2300,3,112,56,0,2300,2301,5,20,0,0,2301,2302,3,164,82,0,2302,2303,3,130,65,0,2303,285,1,0,0,0,2304,2305,3,178,89,0,2305,2306,5,143,0,0,2306,2308,3,186,93,0,2307,2309,3,394,197,0,2308,2307,1,0,0,0,2308,2309,1,0,0,0,2309,2310,1,0,0,0,2310,2311,3,130,65,0,2311,287,1,0,0,0,2312,2313,3,112,56,0,2313,2314,5,75,0,0,2314,2315,3,164,82,0,2315,2316,3,290,145,0,2316,289,1,0,0,0,2317,2323,5,205,0,0,2318,2319,5,214,0,0,2319,2320,3,292,146,0,2320,2321,5,216,0,0,2321,2323,1,0,0,0,2322,2317,1,0,0,0,2322,2318,1,0,0,0,2323,291,1,0,0,0,2324,2327,3,132,66,0,2325,2327,3,294,147,0,2326,2324,1,0,0,0,2326,2325,1,0,0,0,2327,2330,1,0,0,0,2328,2326,1,0,0,0,2328,2329,1,0,0,0,2329,2332,1,0,0,0,2330,2328,1,0,0,0,2331,2333,3,296,148,0,2332,2331,1,0,0,0,2332,2333,1,0,0,0,2333,293,1,0,0,0,2334,2335,3,78,39,0,2335,2336,5,134,0,0,2336,2337,3,108,54,0,2337,295,1,0,0,0,2338,2339,3,78,39,0,2339,2340,3,0,0,0,2340,297,1,0,0,0,2341,2342,3,178,89,0,2342,2343,5,63,0,0,2343,2345,3,186,93,0,2344,2346,3,394,197,0,2345,2344,1,0,0,0,2345,2346,1,0,0,0,2346,2347,1,0,0,0,2347,2348,3,290,145,0,2348,299,1,0,0,0,2349,2350,3,112,56,0,2350,2351,5,121,0,0,2351,2352,3,164,82,0,2352,2353,3,290,145,0,2353,301,1,0,0,0,2354,2355,3,178,89,0,2355,2356,5,23,0,0,2356,2358,3,186,93,0,2357,2359,3,394,197,0,2358,2357,1,0,0,0,2358,2359,1,0,0,0,2359,2360,1,0,0,0,2360,2361,3,290,145,0,2361,303,1,0,0,0,2362,2363,3,178,89,0,2363,2365,5,87,0,0,2364,2366,7,8,0,0,2365,2364,1,0,0,0,2365,2366,1,0,0,0,2366,2367,1,0,0,0,2367,2369,3,186,93,0,2368,2370,3,394,197,0,2369,2368,1,0,0,0,2369,2370,1,0,0,0,2370,2371,1,0,0,0,2371,2372,3,290,145,0,2372,305,1,0,0,0,2373,2374,3,0,0,0,2374,307,1,0,0,0,2375,2376,3,348,174,0,2376,309,1,0,0,0,2377,2378,3,2,1,0,2378,311,1,0,0,0,2379,2380,3,2,1,0,2380,313,1,0,0,0,2381,2382,3,90,45,0,2382,315,1,0,0,0,2383,2384,3,978,489,0,2384,317,1,0,0,0,2385,2386,3,306,153,0,2386,2387,5,200,0,0,2387,2388,3,320,160,0,2388,319,1,0,0,0,2389,2390,3,4,2,0,2390,321,1,0,0,0,2391,2392,3,324,162,0,2392,323,1,0,0,0,2393,2394,3,326,163,0,2394,325,1,0,0,0,2395,2396,3,18,9,0,2396,327,1,0,0,0,2397,2398,3,330,165,0,2398,329,1,0,0,0,2399,2400,3,332,166,0,2400,331,1,0,0,0,2401,2402,3,334,167,0,2402,333,1,0,0,0,2403,2404,3,336,168,0,2404,335,1,0,0,0,2405,2406,3,338,169,0,2406,337,1,0,0,0,2407,2408,3,314,157,0,2408,339,1,0,0,0,2409,2414,3,90,45,0,2410,2411,5,202,0,0,2411,2413,3,90,45,0,2412,2410,1,0,0,0,2413,2416,1,0,0,0,2414,2412,1,0,0,0,2414,2415,1,0,0,0,2415,341,1,0,0,0,2416,2414,1,0,0,0,2417,2420,3,238,119,0,2418,2420,3,236,118,0,2419,2417,1,0,0,0,2419,2418,1,0,0,0,2420,343,1,0,0,0,2421,2422,3,346,173,0,2422,345,1,0,0,0,2423,2424,3,90,45,0,2424,347,1,0,0,0,2425,2426,3,90,45,0,2426,349,1,0,0,0,2427,2428,3,352,176,0,2428,351,1,0,0,0,2429,2430,3,20,10,0,2430,353,1,0,0,0,2431,2436,3,90,45,0,2432,2433,5,202,0,0,2433,2435,3,90,45,0,2434,2432,1,0,0,0,2435,2438,1,0,0,0,2436,2434,1,0,0,0,2436,2437,1,0,0,0,2437,355,1,0,0,0,2438,2436,1,0,0,0,2439,2440,3,90,45,0,2440,357,1,0,0,0,2441,2442,3,26,13,0,2442,359,1,0,0,0,2443,2444,3,90,45,0,2444,361,1,0,0,0,2445,2446,3,364,182,0,2446,363,1,0,0,0,2447,2448,5,214,0,0,2448,2449,3,292,146,0,2449,2450,5,216,0,0,2450,365,1,0,0,0,2451,2452,7,8,0,0,2452,367,1,0,0,0,2453,2455,5,221,0,0,2454,2453,1,0,0,0,2454,2455,1,0,0,0,2455,2456,1,0,0,0,2456,2457,5,202,0,0,2457,2460,7,20,0,0,2458,2460,5,222,0,0,2459,2454,1,0,0,0,2459,2458,1,0,0,0,2460,369,1,0,0,0,2461,2462,3,112,56,0,2462,2463,5,84,0,0,2463,2464,3,164,82,0,2464,2465,3,130,65,0,2465,371,1,0,0,0,2466,2467,3,178,89,0,2467,2468,5,70,0,0,2468,2469,3,376,188,0,2469,2470,3,130,65,0,2470,373,1,0,0,0,2471,2472,3,178,89,0,2472,2473,5,150,0,0,2473,2474,5,70,0,0,2474,2475,3,376,188,0,2475,2476,3,130,65,0,2476,375,1,0,0,0,2477,2479,3,186,93,0,2478,2480,3,394,197,0,2479,2478,1,0,0,0,2479,2480,1,0,0,0,2480,2483,1,0,0,0,2481,2482,5,111,0,0,2482,2484,3,378,189,0,2483,2481,1,0,0,0,2483,2484,1,0,0,0,2484,2490,1,0,0,0,2485,2486,5,74,0,0,2486,2487,3,384,192,0,2487,2488,5,154,0,0,2488,2489,3,384,192,0,2489,2491,1,0,0,0,2490,2485,1,0,0,0,2490,2491,1,0,0,0,2491,2517,1,0,0,0,2492,2494,5,8,0,0,2493,2492,1,0,0,0,2493,2494,1,0,0,0,2494,2495,1,0,0,0,2495,2496,3,384,192,0,2496,2497,5,154,0,0,2497,2498,3,384,192,0,2498,2517,1,0,0,0,2499,2501,3,496,248,0,2500,2499,1,0,0,0,2500,2501,1,0,0,0,2501,2503,1,0,0,0,2502,2504,3,394,197,0,2503,2502,1,0,0,0,2503,2504,1,0,0,0,2504,2507,1,0,0,0,2505,2506,5,111,0,0,2506,2508,3,646,323,0,2507,2505,1,0,0,0,2507,2508,1,0,0,0,2508,2514,1,0,0,0,2509,2510,5,74,0,0,2510,2511,3,384,192,0,2511,2512,5,154,0,0,2512,2513,3,384,192,0,2513,2515,1,0,0,0,2514,2509,1,0,0,0,2514,2515,1,0,0,0,2515,2517,1,0,0,0,2516,2477,1,0,0,0,2516,2493,1,0,0,0,2516,2500,1,0,0,0,2517,377,1,0,0,0,2518,2519,3,380,190,0,2519,379,1,0,0,0,2520,2522,3,46,23,0,2521,2520,1,0,0,0,2521,2522,1,0,0,0,2522,2523,1,0,0,0,2523,2540,3,394,197,0,2524,2526,3,46,23,0,2525,2524,1,0,0,0,2525,2526,1,0,0,0,2526,2527,1,0,0,0,2527,2529,3,382,191,0,2528,2530,3,394,197,0,2529,2528,1,0,0,0,2529,2530,1,0,0,0,2530,2540,1,0,0,0,2531,2533,3,222,111,0,2532,2534,3,404,202,0,2533,2532,1,0,0,0,2533,2534,1,0,0,0,2534,2540,1,0,0,0,2535,2537,3,404,202,0,2536,2538,3,222,111,0,2537,2536,1,0,0,0,2537,2538,1,0,0,0,2538,2540,1,0,0,0,2539,2521,1,0,0,0,2539,2525,1,0,0,0,2539,2531,1,0,0,0,2539,2535,1,0,0,0,2540,381,1,0,0,0,2541,2543,3,202,101,0,2542,2541,1,0,0,0,2543,2544,1,0,0,0,2544,2542,1,0,0,0,2544,2545,1,0,0,0,2545,2547,1,0,0,0,2546,2548,3,200,100,0,2547,2546,1,0,0,0,2547,2548,1,0,0,0,2548,2552,1,0,0,0,2549,2551,3,202,101,0,2550,2549,1,0,0,0,2551,2554,1,0,0,0,2552,2550,1,0,0,0,2552,2553,1,0,0,0,2553,2562,1,0,0,0,2554,2552,1,0,0,0,2555,2557,3,200,100,0,2556,2558,3,202,101,0,2557,2556,1,0,0,0,2558,2559,1,0,0,0,2559,2557,1,0,0,0,2559,2560,1,0,0,0,2560,2562,1,0,0,0,2561,2542,1,0,0,0,2561,2555,1,0,0,0,2562,383,1,0,0,0,2563,2564,3,386,193,0,2564,385,1,0,0,0,2565,2570,3,90,45,0,2566,2567,5,202,0,0,2567,2569,3,90,45,0,2568,2566,1,0,0,0,2569,2572,1,0,0,0,2570,2568,1,0,0,0,2570,2571,1,0,0,0,2571,387,1,0,0,0,2572,2570,1,0,0,0,2573,2574,3,390,195,0,2574,389,1,0,0,0,2575,2576,3,392,196,0,2576,391,1,0,0,0,2577,2578,3,90,45,0,2578,393,1,0,0,0,2579,2580,3,396,198,0,2580,395,1,0,0,0,2581,2588,5,207,0,0,2582,2588,5,184,0,0,2583,2585,5,46,0,0,2584,2586,7,21,0,0,2585,2584,1,0,0,0,2585,2586,1,0,0,0,2586,2588,1,0,0,0,2587,2581,1,0,0,0,2587,2582,1,0,0,0,2587,2583,1,0,0,0,2588,2589,1,0,0,0,2589,2590,3,0,0,0,2590,397,1,0,0,0,2591,2594,3,400,200,0,2592,2594,3,402,201,0,2593,2591,1,0,0,0,2593,2592,1,0,0,0,2594,399,1,0,0,0,2595,2597,5,103,0,0,2596,2598,3,46,23,0,2597,2596,1,0,0,0,2597,2598,1,0,0,0,2598,2599,1,0,0,0,2599,2600,3,210,105,0,2600,2601,3,130,65,0,2601,401,1,0,0,0,2602,2604,5,103,0,0,2603,2605,3,46,23,0,2604,2603,1,0,0,0,2604,2605,1,0,0,0,2605,2606,1,0,0,0,2606,2607,3,408,204,0,2607,2608,3,130,65,0,2608,403,1,0,0,0,2609,2610,3,406,203,0,2610,405,1,0,0,0,2611,2612,3,408,204,0,2612,407,1,0,0,0,2613,2617,5,211,0,0,2614,2615,3,410,205,0,2615,2616,5,181,0,0,2616,2618,1,0,0,0,2617,2614,1,0,0,0,2617,2618,1,0,0,0,2618,2619,1,0,0,0,2619,2620,3,410,205,0,2620,2621,5,212,0,0,2621,409,1,0,0,0,2622,2625,3,28,14,0,2623,2625,3,10,5,0,2624,2622,1,0,0,0,2624,2623,1,0,0,0,2625,411,1,0,0,0,2626,2627,3,112,56,0,2627,2628,5,101,0,0,2628,2629,3,164,82,0,2629,2630,3,130,65,0,2630,413,1,0,0,0,2631,2632,5,192,0,0,2632,2636,3,418,209,0,2633,2634,5,192,0,0,2634,2636,3,956,478,0,2635,2631,1,0,0,0,2635,2633,1,0,0,0,2636,415,1,0,0,0,2637,2638,5,192,0,0,2638,2642,3,418,209,0,2639,2640,5,192,0,0,2640,2642,3,956,478,0,2641,2637,1,0,0,0,2641,2639,1,0,0,0,2642,417,1,0,0,0,2643,2644,3,222,111,0,2644,419,1,0,0,0,2645,2647,3,416,208,0,2646,2645,1,0,0,0,2647,2650,1,0,0,0,2648,2646,1,0,0,0,2648,2649,1,0,0,0,2649,2651,1,0,0,0,2650,2648,1,0,0,0,2651,2652,7,22,0,0,2652,2662,3,422,211,0,2653,2654,5,1,0,0,2654,2659,3,56,28,0,2655,2656,5,200,0,0,2656,2658,3,56,28,0,2657,2655,1,0,0,0,2658,2661,1,0,0,0,2659,2657,1,0,0,0,2659,2660,1,0,0,0,2660,2663,1,0,0,0,2661,2659,1,0,0,0,2662,2653,1,0,0,0,2662,2663,1,0,0,0,2663,2664,1,0,0,0,2664,2665,3,424,212,0,2665,421,1,0,0,0,2666,2668,3,46,23,0,2667,2666,1,0,0,0,2667,2668,1,0,0,0,2668,2672,1,0,0,0,2669,2673,5,204,0,0,2670,2671,5,158,0,0,2671,2673,5,24,0,0,2672,2669,1,0,0,0,2672,2670,1,0,0,0,2673,2675,1,0,0,0,2674,2667,1,0,0,0,2674,2675,1,0,0,0,2675,2676,1,0,0,0,2676,2677,3,222,111,0,2677,423,1,0,0,0,2678,2699,5,205,0,0,2679,2683,5,214,0,0,2680,2682,3,426,213,0,2681,2680,1,0,0,0,2682,2685,1,0,0,0,2683,2681,1,0,0,0,2683,2684,1,0,0,0,2684,2686,1,0,0,0,2685,2683,1,0,0,0,2686,2699,5,216,0,0,2687,2694,5,214,0,0,2688,2693,3,470,235,0,2689,2693,3,962,481,0,2690,2693,3,88,44,0,2691,2693,3,92,46,0,2692,2688,1,0,0,0,2692,2689,1,0,0,0,2692,2690,1,0,0,0,2692,2691,1,0,0,0,2693,2696,1,0,0,0,2694,2692,1,0,0,0,2694,2695,1,0,0,0,2695,2697,1,0,0,0,2696,2694,1,0,0,0,2697,2699,5,216,0,0,2698,2678,1,0,0,0,2698,2679,1,0,0,0,2698,2687,1,0,0,0,2699,425,1,0,0,0,2700,2705,3,84,42,0,2701,2705,3,428,214,0,2702,2705,3,88,44,0,2703,2705,3,92,46,0,2704,2700,1,0,0,0,2704,2701,1,0,0,0,2704,2702,1,0,0,0,2704,2703,1,0,0,0,2705,427,1,0,0,0,2706,2707,3,430,215,0,2707,429,1,0,0,0,2708,2710,5,65,0,0,2709,2708,1,0,0,0,2709,2710,1,0,0,0,2710,2712,1,0,0,0,2711,2713,7,19,0,0,2712,2711,1,0,0,0,2712,2713,1,0,0,0,2713,2714,1,0,0,0,2714,2716,3,234,117,0,2715,2717,3,198,99,0,2716,2715,1,0,0,0,2716,2717,1,0,0,0,2717,2719,1,0,0,0,2718,2720,3,394,197,0,2719,2718,1,0,0,0,2719,2720,1,0,0,0,2720,2721,1,0,0,0,2721,2722,3,424,212,0,2722,431,1,0,0,0,2723,2725,3,416,208,0,2724,2723,1,0,0,0,2725,2728,1,0,0,0,2726,2724,1,0,0,0,2726,2727,1,0,0,0,2727,2729,1,0,0,0,2728,2726,1,0,0,0,2729,2730,3,436,218,0,2730,2731,3,438,219,0,2731,433,1,0,0,0,2732,2734,5,141,0,0,2733,2732,1,0,0,0,2733,2734,1,0,0,0,2734,2735,1,0,0,0,2735,2739,5,94,0,0,2736,2738,3,416,208,0,2737,2736,1,0,0,0,2738,2741,1,0,0,0,2739,2737,1,0,0,0,2739,2740,1,0,0,0,2740,2742,1,0,0,0,2741,2739,1,0,0,0,2742,2743,3,436,218,0,2743,2744,3,438,219,0,2744,435,1,0,0,0,2745,2747,5,115,0,0,2746,2748,3,46,23,0,2747,2746,1,0,0,0,2747,2748,1,0,0,0,2748,437,1,0,0,0,2749,2759,5,205,0,0,2750,2754,5,214,0,0,2751,2753,3,446,223,0,2752,2751,1,0,0,0,2753,2756,1,0,0,0,2754,2752,1,0,0,0,2754,2755,1,0,0,0,2755,2757,1,0,0,0,2756,2754,1,0,0,0,2757,2759,5,216,0,0,2758,2749,1,0,0,0,2758,2750,1,0,0,0,2759,439,1,0,0,0,2760,2761,3,78,39,0,2761,2762,5,68,0,0,2762,2763,3,0,0,0,2763,2764,5,205,0,0,2764,441,1,0,0,0,2765,2767,3,46,23,0,2766,2765,1,0,0,0,2766,2767,1,0,0,0,2767,2768,1,0,0,0,2768,2770,5,74,0,0,2769,2766,1,0,0,0,2769,2770,1,0,0,0,2770,2771,1,0,0,0,2771,2776,3,90,45,0,2772,2773,5,200,0,0,2773,2775,3,90,45,0,2774,2772,1,0,0,0,2775,2778,1,0,0,0,2776,2774,1,0,0,0,2776,2777,1,0,0,0,2777,2779,1,0,0,0,2778,2776,1,0,0,0,2779,2780,5,154,0,0,2780,2785,3,90,45,0,2781,2782,5,200,0,0,2782,2784,3,90,45,0,2783,2781,1,0,0,0,2784,2787,1,0,0,0,2785,2783,1,0,0,0,2785,2786,1,0,0,0,2786,443,1,0,0,0,2787,2785,1,0,0,0,2788,2789,3,60,30,0,2789,445,1,0,0,0,2790,2795,3,448,224,0,2791,2795,3,440,220,0,2792,2795,3,88,44,0,2793,2795,3,92,46,0,2794,2790,1,0,0,0,2794,2791,1,0,0,0,2794,2792,1,0,0,0,2794,2793,1,0,0,0,2795,447,1,0,0,0,2796,2799,3,78,39,0,2797,2800,3,450,225,0,2798,2800,3,452,226,0,2799,2797,1,0,0,0,2799,2798,1,0,0,0,2800,449,1,0,0,0,2801,2832,3,432,216,0,2802,2832,3,434,217,0,2803,2832,3,60,30,0,2804,2832,3,54,27,0,2805,2832,3,522,261,0,2806,2832,3,526,263,0,2807,2832,3,538,269,0,2808,2832,3,540,270,0,2809,2832,3,564,282,0,2810,2832,3,568,284,0,2811,2832,3,582,291,0,2812,2832,3,632,316,0,2813,2832,3,596,298,0,2814,2832,3,572,286,0,2815,2832,3,654,327,0,2816,2832,3,830,415,0,2817,2832,3,768,384,0,2818,2832,3,842,421,0,2819,2832,3,850,425,0,2820,2832,3,890,445,0,2821,2832,3,894,447,0,2822,2832,3,906,453,0,2823,2832,3,910,455,0,2824,2832,3,918,459,0,2825,2832,3,924,462,0,2826,2832,3,946,473,0,2827,2832,3,950,475,0,2828,2832,3,954,477,0,2829,2832,3,626,313,0,2830,2832,3,966,483,0,2831,2801,1,0,0,0,2831,2802,1,0,0,0,2831,2803,1,0,0,0,2831,2804,1,0,0,0,2831,2805,1,0,0,0,2831,2806,1,0,0,0,2831,2807,1,0,0,0,2831,2808,1,0,0,0,2831,2809,1,0,0,0,2831,2810,1,0,0,0,2831,2811,1,0,0,0,2831,2812,1,0,0,0,2831,2813,1,0,0,0,2831,2814,1,0,0,0,2831,2815,1,0,0,0,2831,2816,1,0,0,0,2831,2817,1,0,0,0,2831,2818,1,0,0,0,2831,2819,1,0,0,0,2831,2820,1,0,0,0,2831,2821,1,0,0,0,2831,2822,1,0,0,0,2831,2823,1,0,0,0,2831,2824,1,0,0,0,2831,2825,1,0,0,0,2831,2826,1,0,0,0,2831,2827,1,0,0,0,2831,2828,1,0,0,0,2831,2829,1,0,0,0,2831,2830,1,0,0,0,2832,451,1,0,0,0,2833,2836,3,510,255,0,2834,2836,3,512,256,0,2835,2833,1,0,0,0,2835,2834,1,0,0,0,2836,453,1,0,0,0,2837,2838,7,23,0,0,2838,455,1,0,0,0,2839,2840,3,416,208,0,2840,457,1,0,0,0,2841,2843,3,454,227,0,2842,2841,1,0,0,0,2842,2843,1,0,0,0,2843,2847,1,0,0,0,2844,2846,3,456,228,0,2845,2844,1,0,0,0,2846,2849,1,0,0,0,2847,2845,1,0,0,0,2847,2848,1,0,0,0,2848,459,1,0,0,0,2849,2847,1,0,0,0,2850,2851,3,462,231,0,2851,2852,3,464,232,0,2852,461,1,0,0,0,2853,2855,3,46,23,0,2854,2853,1,0,0,0,2854,2855,1,0,0,0,2855,2857,1,0,0,0,2856,2858,3,520,260,0,2857,2856,1,0,0,0,2857,2858,1,0,0,0,2858,463,1,0,0,0,2859,2869,5,205,0,0,2860,2864,5,214,0,0,2861,2863,3,466,233,0,2862,2861,1,0,0,0,2863,2866,1,0,0,0,2864,2862,1,0,0,0,2864,2865,1,0,0,0,2865,2867,1,0,0,0,2866,2864,1,0,0,0,2867,2869,5,216,0,0,2868,2859,1,0,0,0,2868,2860,1,0,0,0,2869,465,1,0,0,0,2870,2881,3,92,46,0,2871,2872,3,78,39,0,2872,2873,3,468,234,0,2873,2881,1,0,0,0,2874,2876,3,556,278,0,2875,2874,1,0,0,0,2875,2876,1,0,0,0,2876,2877,1,0,0,0,2877,2878,3,78,39,0,2878,2879,3,512,256,0,2879,2881,1,0,0,0,2880,2870,1,0,0,0,2880,2871,1,0,0,0,2880,2875,1,0,0,0,2881,467,1,0,0,0,2882,2887,5,7,0,0,2883,2884,5,206,0,0,2884,2885,3,44,22,0,2885,2886,5,208,0,0,2886,2888,1,0,0,0,2887,2883,1,0,0,0,2887,2888,1,0,0,0,2888,2890,1,0,0,0,2889,2891,3,44,22,0,2890,2889,1,0,0,0,2890,2891,1,0,0,0,2891,2892,1,0,0,0,2892,2893,5,71,0,0,2893,2894,3,90,45,0,2894,2895,3,48,24,0,2895,2901,1,0,0,0,2896,2897,5,164,0,0,2897,2901,3,518,259,0,2898,2901,3,450,225,0,2899,2901,3,510,255,0,2900,2882,1,0,0,0,2900,2896,1,0,0,0,2900,2898,1,0,0,0,2900,2899,1,0,0,0,2901,469,1,0,0,0,2902,2903,3,78,39,0,2903,2904,3,450,225,0,2904,471,1,0,0,0,2905,2906,3,78,39,0,2906,2907,5,164,0,0,2907,2908,3,518,259,0,2908,473,1,0,0,0,2909,2910,3,78,39,0,2910,2911,3,510,255,0,2911,475,1,0,0,0,2912,2913,3,78,39,0,2913,2914,3,512,256,0,2914,477,1,0,0,0,2915,2916,3,78,39,0,2916,2917,3,514,257,0,2917,479,1,0,0,0,2918,2919,3,78,39,0,2919,2920,3,516,258,0,2920,481,1,0,0,0,2921,2923,3,184,92,0,2922,2921,1,0,0,0,2922,2923,1,0,0,0,2923,2925,1,0,0,0,2924,2926,5,49,0,0,2925,2924,1,0,0,0,2925,2926,1,0,0,0,2926,2928,1,0,0,0,2927,2929,7,23,0,0,2928,2927,1,0,0,0,2928,2929,1,0,0,0,2929,2931,1,0,0,0,2930,2932,5,40,0,0,2931,2930,1,0,0,0,2931,2932,1,0,0,0,2932,483,1,0,0,0,2933,2935,3,482,241,0,2934,2936,5,127,0,0,2935,2934,1,0,0,0,2935,2936,1,0,0,0,2936,485,1,0,0,0,2937,2938,5,56,0,0,2938,2939,3,180,90,0,2939,487,1,0,0,0,2940,2941,3,416,208,0,2941,489,1,0,0,0,2942,2945,3,486,243,0,2943,2945,3,484,242,0,2944,2942,1,0,0,0,2944,2943,1,0,0,0,2945,491,1,0,0,0,2946,2950,3,490,245,0,2947,2949,3,488,244,0,2948,2947,1,0,0,0,2949,2952,1,0,0,0,2950,2948,1,0,0,0,2950,2951,1,0,0,0,2951,493,1,0,0,0,2952,2950,1,0,0,0,2953,2955,3,496,248,0,2954,2953,1,0,0,0,2954,2955,1,0,0,0,2955,2956,1,0,0,0,2956,2957,3,498,249,0,2957,495,1,0,0,0,2958,2960,3,46,23,0,2959,2961,3,198,99,0,2960,2959,1,0,0,0,2960,2961,1,0,0,0,2961,2964,1,0,0,0,2962,2964,3,198,99,0,2963,2958,1,0,0,0,2963,2962,1,0,0,0,2964,497,1,0,0,0,2965,2967,3,394,197,0,2966,2965,1,0,0,0,2966,2967,1,0,0,0,2967,2968,1,0,0,0,2968,2969,3,500,250,0,2969,499,1,0,0,0,2970,2971,3,464,232,0,2971,501,1,0,0,0,2972,2973,3,482,241,0,2973,2974,3,494,247,0,2974,503,1,0,0,0,2975,2978,3,486,243,0,2976,2978,3,482,241,0,2977,2975,1,0,0,0,2977,2976,1,0,0,0,2978,2979,1,0,0,0,2979,2980,5,127,0,0,2980,2981,3,494,247,0,2981,505,1,0,0,0,2982,2983,3,486,243,0,2983,2984,3,186,93,0,2984,2985,3,498,249,0,2985,507,1,0,0,0,2986,2990,3,228,114,0,2987,2989,3,202,101,0,2988,2987,1,0,0,0,2989,2992,1,0,0,0,2990,2988,1,0,0,0,2990,2991,1,0,0,0,2991,2993,1,0,0,0,2992,2990,1,0,0,0,2993,2994,3,500,250,0,2994,509,1,0,0,0,2995,3004,3,504,252,0,2996,3004,3,506,253,0,2997,3004,3,524,262,0,2998,3004,3,534,267,0,2999,3004,3,592,296,0,3e3,3004,3,594,297,0,3001,3004,3,968,484,0,3002,3004,3,502,251,0,3003,2995,1,0,0,0,3003,2996,1,0,0,0,3003,2997,1,0,0,0,3003,2998,1,0,0,0,3003,2999,1,0,0,0,3003,3e3,1,0,0,0,3003,3001,1,0,0,0,3003,3002,1,0,0,0,3004,511,1,0,0,0,3005,3008,3,514,257,0,3006,3008,3,516,258,0,3007,3005,1,0,0,0,3007,3006,1,0,0,0,3008,513,1,0,0,0,3009,3025,3,546,273,0,3010,3025,3,548,274,0,3011,3025,3,550,275,0,3012,3025,3,554,277,0,3013,3025,3,566,283,0,3014,3025,3,570,285,0,3015,3025,3,934,467,0,3016,3025,3,952,476,0,3017,3025,3,578,289,0,3018,3025,3,584,292,0,3019,3025,3,612,306,0,3020,3025,3,628,314,0,3021,3025,3,634,317,0,3022,3025,3,642,321,0,3023,3025,3,644,322,0,3024,3009,1,0,0,0,3024,3010,1,0,0,0,3024,3011,1,0,0,0,3024,3012,1,0,0,0,3024,3013,1,0,0,0,3024,3014,1,0,0,0,3024,3015,1,0,0,0,3024,3016,1,0,0,0,3024,3017,1,0,0,0,3024,3018,1,0,0,0,3024,3019,1,0,0,0,3024,3020,1,0,0,0,3024,3021,1,0,0,0,3024,3022,1,0,0,0,3024,3023,1,0,0,0,3025,515,1,0,0,0,3026,3043,3,672,336,0,3027,3043,3,832,416,0,3028,3043,3,796,398,0,3029,3043,3,844,422,0,3030,3043,3,878,439,0,3031,3043,3,892,446,0,3032,3043,3,896,448,0,3033,3043,3,908,454,0,3034,3043,3,912,456,0,3035,3043,3,920,460,0,3036,3043,3,948,474,0,3037,3043,3,676,338,0,3038,3043,3,800,400,0,3039,3043,3,922,461,0,3040,3043,3,846,423,0,3041,3043,3,880,440,0,3042,3026,1,0,0,0,3042,3027,1,0,0,0,3042,3028,1,0,0,0,3042,3029,1,0,0,0,3042,3030,1,0,0,0,3042,3031,1,0,0,0,3042,3032,1,0,0,0,3042,3033,1,0,0,0,3042,3034,1,0,0,0,3042,3035,1,0,0,0,3042,3036,1,0,0,0,3042,3037,1,0,0,0,3042,3038,1,0,0,0,3042,3039,1,0,0,0,3042,3040,1,0,0,0,3042,3041,1,0,0,0,3043,517,1,0,0,0,3044,3066,3,508,254,0,3045,3066,3,504,252,0,3046,3066,3,524,262,0,3047,3066,3,592,296,0,3048,3066,3,594,297,0,3049,3066,3,546,273,0,3050,3066,3,548,274,0,3051,3066,3,550,275,0,3052,3066,3,554,277,0,3053,3066,3,566,283,0,3054,3066,3,570,285,0,3055,3066,3,934,467,0,3056,3066,3,952,476,0,3057,3066,3,578,289,0,3058,3066,3,584,292,0,3059,3066,3,612,306,0,3060,3066,3,628,314,0,3061,3066,3,634,317,0,3062,3066,3,642,321,0,3063,3066,3,644,322,0,3064,3066,3,516,258,0,3065,3044,1,0,0,0,3065,3045,1,0,0,0,3065,3046,1,0,0,0,3065,3047,1,0,0,0,3065,3048,1,0,0,0,3065,3049,1,0,0,0,3065,3050,1,0,0,0,3065,3051,1,0,0,0,3065,3052,1,0,0,0,3065,3053,1,0,0,0,3065,3054,1,0,0,0,3065,3055,1,0,0,0,3065,3056,1,0,0,0,3065,3057,1,0,0,0,3065,3058,1,0,0,0,3065,3059,1,0,0,0,3065,3060,1,0,0,0,3065,3061,1,0,0,0,3065,3062,1,0,0,0,3065,3063,1,0,0,0,3065,3064,1,0,0,0,3066,519,1,0,0,0,3067,3068,7,11,0,0,3068,3073,3,170,85,0,3069,3070,5,200,0,0,3070,3072,3,170,85,0,3071,3069,1,0,0,0,3072,3075,1,0,0,0,3073,3071,1,0,0,0,3073,3074,1,0,0,0,3074,521,1,0,0,0,3075,3073,1,0,0,0,3076,3077,3,458,229,0,3077,3078,5,19,0,0,3078,3079,5,45,0,0,3079,3080,3,460,230,0,3080,523,1,0,0,0,3081,3082,3,492,246,0,3082,3083,5,19,0,0,3083,3084,3,494,247,0,3084,525,1,0,0,0,3085,3087,3,456,228,0,3086,3085,1,0,0,0,3087,3090,1,0,0,0,3088,3086,1,0,0,0,3088,3089,1,0,0,0,3089,3091,1,0,0,0,3090,3088,1,0,0,0,3091,3092,5,58,0,0,3092,3093,5,45,0,0,3093,3094,3,462,231,0,3094,3095,3,528,264,0,3095,527,1,0,0,0,3096,3107,5,205,0,0,3097,3102,5,214,0,0,3098,3101,3,444,222,0,3099,3101,3,530,265,0,3100,3098,1,0,0,0,3100,3099,1,0,0,0,3101,3104,1,0,0,0,3102,3100,1,0,0,0,3102,3103,1,0,0,0,3103,3105,1,0,0,0,3104,3102,1,0,0,0,3105,3107,5,216,0,0,3106,3096,1,0,0,0,3106,3097,1,0,0,0,3107,529,1,0,0,0,3108,3109,3,78,39,0,3109,3110,3,532,266,0,3110,531,1,0,0,0,3111,3113,5,58,0,0,3112,3111,1,0,0,0,3112,3113,1,0,0,0,3113,3114,1,0,0,0,3114,3115,3,494,247,0,3115,533,1,0,0,0,3116,3117,3,492,246,0,3117,3118,5,58,0,0,3118,3119,3,494,247,0,3119,535,1,0,0,0,3120,3122,3,454,227,0,3121,3120,1,0,0,0,3121,3122,1,0,0,0,3122,3125,1,0,0,0,3123,3124,5,82,0,0,3124,3126,3,542,271,0,3125,3123,1,0,0,0,3125,3126,1,0,0,0,3126,3130,1,0,0,0,3127,3129,3,456,228,0,3128,3127,1,0,0,0,3129,3132,1,0,0,0,3130,3128,1,0,0,0,3130,3131,1,0,0,0,3131,537,1,0,0,0,3132,3130,1,0,0,0,3133,3134,3,536,268,0,3134,3135,5,110,0,0,3135,3136,5,45,0,0,3136,3137,3,460,230,0,3137,539,1,0,0,0,3138,3140,3,454,227,0,3139,3138,1,0,0,0,3139,3140,1,0,0,0,3140,3141,1,0,0,0,3141,3145,5,82,0,0,3142,3144,3,456,228,0,3143,3142,1,0,0,0,3144,3147,1,0,0,0,3145,3143,1,0,0,0,3145,3146,1,0,0,0,3146,3148,1,0,0,0,3147,3145,1,0,0,0,3148,3149,5,45,0,0,3149,3150,3,460,230,0,3150,3151,3,542,271,0,3151,541,1,0,0,0,3152,3153,3,980,490,0,3153,543,1,0,0,0,3154,3156,3,484,242,0,3155,3157,5,82,0,0,3156,3155,1,0,0,0,3156,3157,1,0,0,0,3157,3159,1,0,0,0,3158,3160,3,552,276,0,3159,3158,1,0,0,0,3159,3160,1,0,0,0,3160,3164,1,0,0,0,3161,3163,3,488,244,0,3162,3161,1,0,0,0,3163,3166,1,0,0,0,3164,3162,1,0,0,0,3164,3165,1,0,0,0,3165,545,1,0,0,0,3166,3164,1,0,0,0,3167,3168,3,544,272,0,3168,3169,5,110,0,0,3169,3170,3,494,247,0,3170,547,1,0,0,0,3171,3172,3,484,242,0,3172,3176,5,82,0,0,3173,3175,3,488,244,0,3174,3173,1,0,0,0,3175,3178,1,0,0,0,3176,3174,1,0,0,0,3176,3177,1,0,0,0,3177,3179,1,0,0,0,3178,3176,1,0,0,0,3179,3180,3,494,247,0,3180,549,1,0,0,0,3181,3183,3,484,242,0,3182,3184,5,82,0,0,3183,3182,1,0,0,0,3183,3184,1,0,0,0,3184,3185,1,0,0,0,3185,3189,3,552,276,0,3186,3188,3,488,244,0,3187,3186,1,0,0,0,3188,3191,1,0,0,0,3189,3187,1,0,0,0,3189,3190,1,0,0,0,3190,3192,1,0,0,0,3191,3189,1,0,0,0,3192,3193,3,494,247,0,3193,551,1,0,0,0,3194,3195,7,24,0,0,3195,553,1,0,0,0,3196,3197,3,544,272,0,3197,3206,5,59,0,0,3198,3200,3,228,114,0,3199,3201,3,198,99,0,3200,3199,1,0,0,0,3200,3201,1,0,0,0,3201,3207,1,0,0,0,3202,3204,5,110,0,0,3203,3205,3,496,248,0,3204,3203,1,0,0,0,3204,3205,1,0,0,0,3205,3207,1,0,0,0,3206,3198,1,0,0,0,3206,3202,1,0,0,0,3207,3208,1,0,0,0,3208,3209,3,498,249,0,3209,555,1,0,0,0,3210,3211,5,152,0,0,3211,3212,3,558,279,0,3212,557,1,0,0,0,3213,3214,3,560,280,0,3214,559,1,0,0,0,3215,3216,3,562,281,0,3216,561,1,0,0,0,3217,3219,3,404,202,0,3218,3217,1,0,0,0,3218,3219,1,0,0,0,3219,563,1,0,0,0,3220,3221,3,536,268,0,3221,3222,5,91,0,0,3222,3223,5,45,0,0,3223,3224,3,460,230,0,3224,565,1,0,0,0,3225,3226,3,544,272,0,3226,3227,5,91,0,0,3227,3228,3,494,247,0,3228,567,1,0,0,0,3229,3230,3,536,268,0,3230,3231,5,117,0,0,3231,3232,5,45,0,0,3232,3233,3,460,230,0,3233,569,1,0,0,0,3234,3235,3,544,272,0,3235,3236,5,117,0,0,3236,3237,3,494,247,0,3237,571,1,0,0,0,3238,3239,3,458,229,0,3239,3240,5,119,0,0,3240,3241,5,45,0,0,3241,3242,3,460,230,0,3242,3243,3,574,287,0,3243,573,1,0,0,0,3244,3245,3,576,288,0,3245,575,1,0,0,0,3246,3247,3,988,494,0,3247,577,1,0,0,0,3248,3249,3,544,272,0,3249,3250,5,119,0,0,3250,3251,3,494,247,0,3251,579,1,0,0,0,3252,3253,5,217,0,0,3253,3254,3,90,45,0,3254,581,1,0,0,0,3255,3256,3,536,268,0,3256,3257,5,37,0,0,3257,3258,5,45,0,0,3258,3259,3,460,230,0,3259,583,1,0,0,0,3260,3274,3,544,272,0,3261,3263,5,37,0,0,3262,3264,3,496,248,0,3263,3262,1,0,0,0,3263,3264,1,0,0,0,3264,3266,1,0,0,0,3265,3267,3,394,197,0,3266,3265,1,0,0,0,3266,3267,1,0,0,0,3267,3270,1,0,0,0,3268,3269,5,36,0,0,3269,3271,3,586,293,0,3270,3268,1,0,0,0,3270,3271,1,0,0,0,3271,3275,1,0,0,0,3272,3273,5,36,0,0,3273,3275,3,586,293,0,3274,3261,1,0,0,0,3274,3272,1,0,0,0,3275,3276,1,0,0,0,3276,3277,3,500,250,0,3277,585,1,0,0,0,3278,3281,3,588,294,0,3279,3281,3,590,295,0,3280,3278,1,0,0,0,3280,3279,1,0,0,0,3281,587,1,0,0,0,3282,3283,3,268,134,0,3283,3284,5,154,0,0,3284,3285,3,268,134,0,3285,589,1,0,0,0,3286,3287,5,196,0,0,3287,3288,3,268,134,0,3288,3289,5,200,0,0,3289,3294,3,268,134,0,3290,3291,5,200,0,0,3291,3293,3,268,134,0,3292,3290,1,0,0,0,3293,3296,1,0,0,0,3294,3292,1,0,0,0,3294,3295,1,0,0,0,3295,3297,1,0,0,0,3296,3294,1,0,0,0,3297,3298,5,197,0,0,3298,591,1,0,0,0,3299,3304,3,492,246,0,3300,3302,5,22,0,0,3301,3303,3,496,248,0,3302,3301,1,0,0,0,3302,3303,1,0,0,0,3303,3305,1,0,0,0,3304,3300,1,0,0,0,3304,3305,1,0,0,0,3305,3306,1,0,0,0,3306,3307,5,21,0,0,3307,3308,3,268,134,0,3308,3309,5,207,0,0,3309,3310,3,268,134,0,3310,3311,3,500,250,0,3311,593,1,0,0,0,3312,3317,3,492,246,0,3313,3315,5,150,0,0,3314,3316,3,496,248,0,3315,3314,1,0,0,0,3315,3316,1,0,0,0,3316,3318,1,0,0,0,3317,3313,1,0,0,0,3317,3318,1,0,0,0,3318,3319,1,0,0,0,3319,3320,5,69,0,0,3320,3321,3,268,134,0,3321,3322,5,152,0,0,3322,3323,3,268,134,0,3323,3324,3,500,250,0,3324,595,1,0,0,0,3325,3326,3,536,268,0,3326,3327,5,85,0,0,3327,3328,5,45,0,0,3328,3329,3,462,231,0,3329,3330,3,598,299,0,3330,597,1,0,0,0,3331,3341,5,205,0,0,3332,3336,5,214,0,0,3333,3335,3,600,300,0,3334,3333,1,0,0,0,3335,3338,1,0,0,0,3336,3334,1,0,0,0,3336,3337,1,0,0,0,3337,3339,1,0,0,0,3338,3336,1,0,0,0,3339,3341,5,216,0,0,3340,3331,1,0,0,0,3340,3332,1,0,0,0,3341,599,1,0,0,0,3342,3352,3,470,235,0,3343,3352,3,472,236,0,3344,3352,3,602,301,0,3345,3347,3,556,278,0,3346,3345,1,0,0,0,3346,3347,1,0,0,0,3347,3348,1,0,0,0,3348,3352,3,606,303,0,3349,3352,3,88,44,0,3350,3352,3,92,46,0,3351,3342,1,0,0,0,3351,3343,1,0,0,0,3351,3344,1,0,0,0,3351,3346,1,0,0,0,3351,3349,1,0,0,0,3351,3350,1,0,0,0,3352,601,1,0,0,0,3353,3354,3,78,39,0,3354,3355,3,604,302,0,3355,603,1,0,0,0,3356,3362,3,504,252,0,3357,3362,3,524,262,0,3358,3362,3,534,267,0,3359,3362,3,592,296,0,3360,3362,3,594,297,0,3361,3356,1,0,0,0,3361,3357,1,0,0,0,3361,3358,1,0,0,0,3361,3359,1,0,0,0,3361,3360,1,0,0,0,3362,605,1,0,0,0,3363,3364,3,78,39,0,3364,3365,3,608,304,0,3365,607,1,0,0,0,3366,3370,3,610,305,0,3367,3370,3,514,257,0,3368,3370,3,516,258,0,3369,3366,1,0,0,0,3369,3367,1,0,0,0,3369,3368,1,0,0,0,3370,609,1,0,0,0,3371,3372,5,56,0,0,3372,3373,3,494,247,0,3373,611,1,0,0,0,3374,3375,3,544,272,0,3375,3376,5,85,0,0,3376,3377,3,614,307,0,3377,3378,3,598,299,0,3378,613,1,0,0,0,3379,3381,3,496,248,0,3380,3379,1,0,0,0,3380,3381,1,0,0,0,3381,3383,1,0,0,0,3382,3384,3,394,197,0,3383,3382,1,0,0,0,3383,3384,1,0,0,0,3384,3387,1,0,0,0,3385,3386,5,36,0,0,3386,3388,3,616,308,0,3387,3385,1,0,0,0,3387,3388,1,0,0,0,3388,3391,1,0,0,0,3389,3391,3,616,308,0,3390,3380,1,0,0,0,3390,3389,1,0,0,0,3391,615,1,0,0,0,3392,3395,3,618,309,0,3393,3395,3,620,310,0,3394,3392,1,0,0,0,3394,3393,1,0,0,0,3395,617,1,0,0,0,3396,3397,3,622,311,0,3397,3398,5,154,0,0,3398,3399,3,622,311,0,3399,619,1,0,0,0,3400,3401,5,196,0,0,3401,3402,3,622,311,0,3402,3403,5,200,0,0,3403,3408,3,622,311,0,3404,3405,5,200,0,0,3405,3407,3,622,311,0,3406,3404,1,0,0,0,3407,3410,1,0,0,0,3408,3406,1,0,0,0,3408,3409,1,0,0,0,3409,3411,1,0,0,0,3410,3408,1,0,0,0,3411,3412,5,197,0,0,3412,621,1,0,0,0,3413,3414,3,624,312,0,3414,623,1,0,0,0,3415,3417,3,272,136,0,3416,3415,1,0,0,0,3416,3417,1,0,0,0,3417,3421,1,0,0,0,3418,3419,3,44,22,0,3419,3420,7,17,0,0,3420,3422,1,0,0,0,3421,3418,1,0,0,0,3421,3422,1,0,0,0,3422,3423,1,0,0,0,3423,3424,3,228,114,0,3424,625,1,0,0,0,3425,3426,3,536,268,0,3426,3427,5,10,0,0,3427,3428,5,45,0,0,3428,3429,3,460,230,0,3429,627,1,0,0,0,3430,3431,3,544,272,0,3431,3432,3,630,315,0,3432,3433,3,500,250,0,3433,629,1,0,0,0,3434,3436,5,10,0,0,3435,3437,3,496,248,0,3436,3435,1,0,0,0,3436,3437,1,0,0,0,3437,3440,1,0,0,0,3438,3439,5,9,0,0,3439,3441,3,586,293,0,3440,3438,1,0,0,0,3440,3441,1,0,0,0,3441,3445,1,0,0,0,3442,3443,5,9,0,0,3443,3445,3,586,293,0,3444,3434,1,0,0,0,3444,3442,1,0,0,0,3445,631,1,0,0,0,3446,3447,3,536,268,0,3447,3448,5,70,0,0,3448,3449,5,45,0,0,3449,3450,3,460,230,0,3450,633,1,0,0,0,3451,3452,3,544,272,0,3452,3453,5,99,0,0,3453,3454,3,636,318,0,3454,3455,3,464,232,0,3455,635,1,0,0,0,3456,3458,3,496,248,0,3457,3456,1,0,0,0,3457,3458,1,0,0,0,3458,3460,1,0,0,0,3459,3461,3,394,197,0,3460,3459,1,0,0,0,3460,3461,1,0,0,0,3461,3464,1,0,0,0,3462,3463,5,111,0,0,3463,3465,3,646,323,0,3464,3462,1,0,0,0,3464,3465,1,0,0,0,3465,3471,1,0,0,0,3466,3467,5,74,0,0,3467,3468,3,638,319,0,3468,3469,5,154,0,0,3469,3470,3,638,319,0,3470,3472,1,0,0,0,3471,3466,1,0,0,0,3471,3472,1,0,0,0,3472,3478,1,0,0,0,3473,3474,3,638,319,0,3474,3475,5,154,0,0,3475,3476,3,638,319,0,3476,3478,1,0,0,0,3477,3457,1,0,0,0,3477,3473,1,0,0,0,3478,637,1,0,0,0,3479,3480,3,640,320,0,3480,639,1,0,0,0,3481,3482,3,228,114,0,3482,641,1,0,0,0,3483,3484,3,544,272,0,3484,3485,5,70,0,0,3485,3486,3,376,188,0,3486,3487,3,464,232,0,3487,643,1,0,0,0,3488,3489,3,544,272,0,3489,3490,5,150,0,0,3490,3491,5,70,0,0,3491,3492,3,376,188,0,3492,3493,3,464,232,0,3493,645,1,0,0,0,3494,3495,3,648,324,0,3495,647,1,0,0,0,3496,3497,3,380,190,0,3497,649,1,0,0,0,3498,3501,3,90,45,0,3499,3501,3,652,326,0,3500,3498,1,0,0,0,3500,3499,1,0,0,0,3501,651,1,0,0,0,3502,3503,3,240,120,0,3503,3504,5,202,0,0,3504,3506,1,0,0,0,3505,3502,1,0,0,0,3506,3507,1,0,0,0,3507,3505,1,0,0,0,3507,3508,1,0,0,0,3508,3509,1,0,0,0,3509,3510,3,240,120,0,3510,3511,5,202,0,0,3511,653,1,0,0,0,3512,3513,3,536,268,0,3513,3514,5,4,0,0,3514,3515,5,45,0,0,3515,3516,3,462,231,0,3516,3517,3,656,328,0,3517,655,1,0,0,0,3518,3528,5,205,0,0,3519,3523,5,214,0,0,3520,3522,3,658,329,0,3521,3520,1,0,0,0,3522,3525,1,0,0,0,3523,3521,1,0,0,0,3523,3524,1,0,0,0,3524,3526,1,0,0,0,3525,3523,1,0,0,0,3526,3528,5,216,0,0,3527,3518,1,0,0,0,3527,3519,1,0,0,0,3528,657,1,0,0,0,3529,3549,3,660,330,0,3530,3534,3,664,332,0,3531,3533,3,668,334,0,3532,3531,1,0,0,0,3533,3536,1,0,0,0,3534,3532,1,0,0,0,3534,3535,1,0,0,0,3535,3549,1,0,0,0,3536,3534,1,0,0,0,3537,3539,3,556,278,0,3538,3537,1,0,0,0,3538,3539,1,0,0,0,3539,3540,1,0,0,0,3540,3544,3,662,331,0,3541,3543,3,668,334,0,3542,3541,1,0,0,0,3543,3546,1,0,0,0,3544,3542,1,0,0,0,3544,3545,1,0,0,0,3545,3549,1,0,0,0,3546,3544,1,0,0,0,3547,3549,3,670,335,0,3548,3529,1,0,0,0,3548,3530,1,0,0,0,3548,3538,1,0,0,0,3548,3547,1,0,0,0,3549,659,1,0,0,0,3550,3560,3,92,46,0,3551,3560,3,88,44,0,3552,3560,3,470,235,0,3553,3560,3,472,236,0,3554,3560,3,474,237,0,3555,3557,3,556,278,0,3556,3555,1,0,0,0,3556,3557,1,0,0,0,3557,3558,1,0,0,0,3558,3560,3,478,239,0,3559,3550,1,0,0,0,3559,3551,1,0,0,0,3559,3552,1,0,0,0,3559,3553,1,0,0,0,3559,3554,1,0,0,0,3559,3556,1,0,0,0,3560,661,1,0,0,0,3561,3564,3,480,240,0,3562,3564,3,666,333,0,3563,3561,1,0,0,0,3563,3562,1,0,0,0,3564,663,1,0,0,0,3565,3566,3,78,39,0,3566,3567,5,69,0,0,3567,3568,3,90,45,0,3568,3569,3,48,24,0,3569,665,1,0,0,0,3570,3571,3,78,39,0,3571,3572,3,680,340,0,3572,667,1,0,0,0,3573,3574,3,78,39,0,3574,3575,3,758,379,0,3575,669,1,0,0,0,3576,3577,3,78,39,0,3577,3578,3,766,383,0,3578,671,1,0,0,0,3579,3580,3,544,272,0,3580,3581,5,4,0,0,3581,3582,3,674,337,0,3582,3583,3,656,328,0,3583,673,1,0,0,0,3584,3586,3,496,248,0,3585,3584,1,0,0,0,3585,3586,1,0,0,0,3586,3588,1,0,0,0,3587,3589,3,394,197,0,3588,3587,1,0,0,0,3588,3589,1,0,0,0,3589,675,1,0,0,0,3590,3591,3,544,272,0,3591,3592,5,118,0,0,3592,3593,3,678,339,0,3593,3594,3,656,328,0,3594,677,1,0,0,0,3595,3597,3,228,114,0,3596,3598,3,198,99,0,3597,3596,1,0,0,0,3597,3598,1,0,0,0,3598,3604,1,0,0,0,3599,3601,5,4,0,0,3600,3602,3,496,248,0,3601,3600,1,0,0,0,3601,3602,1,0,0,0,3602,3604,1,0,0,0,3603,3595,1,0,0,0,3603,3599,1,0,0,0,3604,3606,1,0,0,0,3605,3607,3,394,197,0,3606,3605,1,0,0,0,3606,3607,1,0,0,0,3607,679,1,0,0,0,3608,3617,3,686,343,0,3609,3617,3,714,357,0,3610,3617,3,698,349,0,3611,3617,3,728,364,0,3612,3617,3,738,369,0,3613,3617,3,740,370,0,3614,3617,3,750,375,0,3615,3617,3,752,376,0,3616,3608,1,0,0,0,3616,3609,1,0,0,0,3616,3610,1,0,0,0,3616,3611,1,0,0,0,3616,3612,1,0,0,0,3616,3613,1,0,0,0,3616,3614,1,0,0,0,3616,3615,1,0,0,0,3617,681,1,0,0,0,3618,3620,5,4,0,0,3619,3621,3,496,248,0,3620,3619,1,0,0,0,3620,3621,1,0,0,0,3621,683,1,0,0,0,3622,3624,3,544,272,0,3623,3625,3,682,341,0,3624,3623,1,0,0,0,3624,3625,1,0,0,0,3625,685,1,0,0,0,3626,3631,3,690,345,0,3627,3631,3,692,346,0,3628,3631,3,694,347,0,3629,3631,3,696,348,0,3630,3626,1,0,0,0,3630,3627,1,0,0,0,3630,3628,1,0,0,0,3630,3629,1,0,0,0,3631,687,1,0,0,0,3632,3634,3,482,241,0,3633,3635,5,82,0,0,3634,3633,1,0,0,0,3634,3635,1,0,0,0,3635,3637,1,0,0,0,3636,3638,3,552,276,0,3637,3636,1,0,0,0,3637,3638,1,0,0,0,3638,3642,1,0,0,0,3639,3641,3,488,244,0,3640,3639,1,0,0,0,3641,3644,1,0,0,0,3642,3640,1,0,0,0,3642,3643,1,0,0,0,3643,689,1,0,0,0,3644,3642,1,0,0,0,3645,3646,3,688,344,0,3646,3648,5,98,0,0,3647,3649,3,496,248,0,3648,3647,1,0,0,0,3648,3649,1,0,0,0,3649,3650,1,0,0,0,3650,3651,3,656,328,0,3651,691,1,0,0,0,3652,3653,3,688,344,0,3653,3655,5,44,0,0,3654,3656,3,496,248,0,3655,3654,1,0,0,0,3655,3656,1,0,0,0,3656,3657,1,0,0,0,3657,3658,3,656,328,0,3658,693,1,0,0,0,3659,3660,3,688,344,0,3660,3662,5,92,0,0,3661,3663,3,496,248,0,3662,3661,1,0,0,0,3662,3663,1,0,0,0,3663,3664,1,0,0,0,3664,3665,3,656,328,0,3665,695,1,0,0,0,3666,3667,3,688,344,0,3667,3669,5,72,0,0,3668,3670,3,496,248,0,3669,3668,1,0,0,0,3669,3670,1,0,0,0,3670,3671,1,0,0,0,3671,3672,3,656,328,0,3672,697,1,0,0,0,3673,3674,3,544,272,0,3674,3675,3,700,350,0,3675,3676,3,656,328,0,3676,699,1,0,0,0,3677,3679,3,682,341,0,3678,3677,1,0,0,0,3678,3679,1,0,0,0,3679,3680,1,0,0,0,3680,3681,5,3,0,0,3681,3682,3,702,351,0,3682,701,1,0,0,0,3683,3686,3,704,352,0,3684,3685,5,168,0,0,3685,3687,3,720,360,0,3686,3684,1,0,0,0,3686,3687,1,0,0,0,3687,703,1,0,0,0,3688,3689,3,706,353,0,3689,705,1,0,0,0,3690,3699,3,380,190,0,3691,3693,3,46,23,0,3692,3691,1,0,0,0,3692,3693,1,0,0,0,3693,3695,1,0,0,0,3694,3696,3,382,191,0,3695,3694,1,0,0,0,3695,3696,1,0,0,0,3696,3697,1,0,0,0,3697,3699,3,708,354,0,3698,3690,1,0,0,0,3698,3692,1,0,0,0,3699,707,1,0,0,0,3700,3701,3,710,355,0,3701,709,1,0,0,0,3702,3703,3,712,356,0,3703,711,1,0,0,0,3704,3705,7,25,0,0,3705,3709,3,40,20,0,3706,3707,5,171,0,0,3707,3709,3,42,21,0,3708,3704,1,0,0,0,3708,3706,1,0,0,0,3709,713,1,0,0,0,3710,3713,3,544,272,0,3711,3714,3,682,341,0,3712,3714,3,674,337,0,3713,3711,1,0,0,0,3713,3712,1,0,0,0,3714,3715,1,0,0,0,3715,3723,5,136,0,0,3716,3718,3,720,360,0,3717,3719,3,718,359,0,3718,3717,1,0,0,0,3718,3719,1,0,0,0,3719,3724,1,0,0,0,3720,3721,3,726,363,0,3721,3722,3,718,359,0,3722,3724,1,0,0,0,3723,3716,1,0,0,0,3723,3720,1,0,0,0,3724,3725,1,0,0,0,3725,3726,3,656,328,0,3726,715,1,0,0,0,3727,3729,3,682,341,0,3728,3727,1,0,0,0,3728,3729,1,0,0,0,3729,3730,1,0,0,0,3730,3731,5,136,0,0,3731,3733,3,720,360,0,3732,3734,3,718,359,0,3733,3732,1,0,0,0,3733,3734,1,0,0,0,3734,717,1,0,0,0,3735,3736,5,168,0,0,3736,3739,3,720,360,0,3737,3738,5,154,0,0,3738,3740,3,720,360,0,3739,3737,1,0,0,0,3739,3740,1,0,0,0,3740,3746,1,0,0,0,3741,3742,3,726,363,0,3742,3743,5,154,0,0,3743,3744,3,720,360,0,3744,3746,1,0,0,0,3745,3735,1,0,0,0,3745,3741,1,0,0,0,3746,719,1,0,0,0,3747,3748,3,722,361,0,3748,721,1,0,0,0,3749,3750,3,724,362,0,3750,723,1,0,0,0,3751,3752,3,0,0,0,3752,725,1,0,0,0,3753,3754,3,982,491,0,3754,727,1,0,0,0,3755,3756,3,544,272,0,3756,3757,3,730,365,0,3757,3758,3,656,328,0,3758,729,1,0,0,0,3759,3761,3,682,341,0,3760,3759,1,0,0,0,3760,3761,1,0,0,0,3761,3762,1,0,0,0,3762,3763,5,15,0,0,3763,3764,3,732,366,0,3764,3765,3,340,170,0,3765,3766,5,184,0,0,3766,3767,3,720,360,0,3767,731,1,0,0,0,3768,3769,3,734,367,0,3769,733,1,0,0,0,3770,3771,3,736,368,0,3771,3772,5,202,0,0,3772,3774,1,0,0,0,3773,3770,1,0,0,0,3773,3774,1,0,0,0,3774,735,1,0,0,0,3775,3776,3,986,493,0,3776,737,1,0,0,0,3777,3779,3,544,272,0,3778,3780,3,682,341,0,3779,3778,1,0,0,0,3779,3780,1,0,0,0,3780,3781,1,0,0,0,3781,3783,5,151,0,0,3782,3784,3,720,360,0,3783,3782,1,0,0,0,3783,3784,1,0,0,0,3784,3785,1,0,0,0,3785,3786,3,656,328,0,3786,739,1,0,0,0,3787,3788,3,684,342,0,3788,3789,5,77,0,0,3789,3790,3,742,371,0,3790,3796,3,744,372,0,3791,3794,5,55,0,0,3792,3795,3,744,372,0,3793,3795,3,748,374,0,3794,3792,1,0,0,0,3794,3793,1,0,0,0,3795,3797,1,0,0,0,3796,3791,1,0,0,0,3796,3797,1,0,0,0,3797,741,1,0,0,0,3798,3799,3,0,0,0,3799,743,1,0,0,0,3800,3801,3,746,373,0,3801,745,1,0,0,0,3802,3804,5,4,0,0,3803,3805,3,496,248,0,3804,3803,1,0,0,0,3804,3805,1,0,0,0,3805,3807,1,0,0,0,3806,3802,1,0,0,0,3806,3807,1,0,0,0,3807,3808,1,0,0,0,3808,3812,5,214,0,0,3809,3811,3,658,329,0,3810,3809,1,0,0,0,3811,3814,1,0,0,0,3812,3810,1,0,0,0,3812,3813,1,0,0,0,3813,3815,1,0,0,0,3814,3812,1,0,0,0,3815,3816,5,216,0,0,3816,747,1,0,0,0,3817,3818,3,740,370,0,3818,749,1,0,0,0,3819,3824,3,684,342,0,3820,3821,5,172,0,0,3821,3825,3,742,371,0,3822,3823,5,96,0,0,3823,3825,3,726,363,0,3824,3820,1,0,0,0,3824,3822,1,0,0,0,3825,3826,1,0,0,0,3826,3831,3,744,372,0,3827,3828,5,161,0,0,3828,3829,3,742,371,0,3829,3830,5,205,0,0,3830,3832,1,0,0,0,3831,3827,1,0,0,0,3831,3832,1,0,0,0,3832,751,1,0,0,0,3833,3834,3,684,342,0,3834,3835,5,71,0,0,3835,3836,3,754,377,0,3836,3837,5,80,0,0,3837,3838,3,720,360,0,3838,3839,3,744,372,0,3839,753,1,0,0,0,3840,3842,3,496,248,0,3841,3840,1,0,0,0,3841,3842,1,0,0,0,3842,755,1,0,0,0,3843,3845,3,496,248,0,3844,3843,1,0,0,0,3844,3845,1,0,0,0,3845,757,1,0,0,0,3846,3850,3,760,380,0,3847,3850,3,762,381,0,3848,3850,3,764,382,0,3849,3846,1,0,0,0,3849,3847,1,0,0,0,3849,3848,1,0,0,0,3850,3851,1,0,0,0,3851,3852,3,500,250,0,3852,759,1,0,0,0,3853,3854,3,560,280,0,3854,3855,5,152,0,0,3855,3856,3,268,134,0,3856,761,1,0,0,0,3857,3858,3,810,405,0,3858,3859,5,152,0,0,3859,3860,3,824,412,0,3860,763,1,0,0,0,3861,3862,5,55,0,0,3862,3863,3,824,412,0,3863,765,1,0,0,0,3864,3866,5,150,0,0,3865,3867,3,496,248,0,3866,3865,1,0,0,0,3866,3867,1,0,0,0,3867,3869,1,0,0,0,3868,3864,1,0,0,0,3868,3869,1,0,0,0,3869,3870,1,0,0,0,3870,3871,5,69,0,0,3871,3872,3,340,170,0,3872,3873,3,810,405,0,3873,3874,5,152,0,0,3874,3875,3,824,412,0,3875,3876,3,500,250,0,3876,767,1,0,0,0,3877,3878,3,536,268,0,3878,3879,5,142,0,0,3879,3880,5,45,0,0,3880,3881,3,462,231,0,3881,3882,3,770,385,0,3882,769,1,0,0,0,3883,3896,5,205,0,0,3884,3886,5,116,0,0,3885,3884,1,0,0,0,3885,3886,1,0,0,0,3886,3887,1,0,0,0,3887,3891,5,214,0,0,3888,3890,3,772,386,0,3889,3888,1,0,0,0,3890,3893,1,0,0,0,3891,3889,1,0,0,0,3891,3892,1,0,0,0,3892,3894,1,0,0,0,3893,3891,1,0,0,0,3894,3896,5,216,0,0,3895,3883,1,0,0,0,3895,3885,1,0,0,0,3896,771,1,0,0,0,3897,3919,3,660,330,0,3898,3900,3,556,278,0,3899,3898,1,0,0,0,3899,3900,1,0,0,0,3900,3901,1,0,0,0,3901,3905,3,480,240,0,3902,3904,3,794,397,0,3903,3902,1,0,0,0,3904,3907,1,0,0,0,3905,3903,1,0,0,0,3905,3906,1,0,0,0,3906,3919,1,0,0,0,3907,3905,1,0,0,0,3908,3919,3,792,396,0,3909,3913,3,774,387,0,3910,3912,3,780,390,0,3911,3910,1,0,0,0,3912,3915,1,0,0,0,3913,3911,1,0,0,0,3913,3914,1,0,0,0,3914,3919,1,0,0,0,3915,3913,1,0,0,0,3916,3919,3,776,388,0,3917,3919,3,778,389,0,3918,3897,1,0,0,0,3918,3899,1,0,0,0,3918,3908,1,0,0,0,3918,3909,1,0,0,0,3918,3916,1,0,0,0,3918,3917,1,0,0,0,3919,773,1,0,0,0,3920,3921,3,78,39,0,3921,3922,5,57,0,0,3922,3923,3,782,391,0,3923,775,1,0,0,0,3924,3925,3,78,39,0,3925,3926,5,53,0,0,3926,3927,3,782,391,0,3927,777,1,0,0,0,3928,3929,3,78,39,0,3929,3930,5,61,0,0,3930,3931,3,782,391,0,3931,779,1,0,0,0,3932,3936,3,78,39,0,3933,3937,3,762,381,0,3934,3935,5,152,0,0,3935,3937,3,824,412,0,3936,3933,1,0,0,0,3936,3934,1,0,0,0,3937,3938,1,0,0,0,3938,3939,5,205,0,0,3939,781,1,0,0,0,3940,3941,3,976,488,0,3941,3942,5,205,0,0,3942,3948,1,0,0,0,3943,3948,3,784,392,0,3944,3948,3,786,393,0,3945,3948,3,788,394,0,3946,3948,3,790,395,0,3947,3940,1,0,0,0,3947,3943,1,0,0,0,3947,3944,1,0,0,0,3947,3945,1,0,0,0,3947,3946,1,0,0,0,3948,783,1,0,0,0,3949,3950,3,678,339,0,3950,3951,3,656,328,0,3951,785,1,0,0,0,3952,3953,3,700,350,0,3953,3954,3,656,328,0,3954,787,1,0,0,0,3955,3956,3,716,358,0,3956,3957,3,656,328,0,3957,789,1,0,0,0,3958,3959,3,730,365,0,3959,3960,3,656,328,0,3960,791,1,0,0,0,3961,3962,3,78,39,0,3962,3963,3,802,401,0,3963,793,1,0,0,0,3964,3965,3,78,39,0,3965,3966,3,804,402,0,3966,795,1,0,0,0,3967,3968,3,544,272,0,3968,3969,5,142,0,0,3969,3970,3,674,337,0,3970,3971,3,798,399,0,3971,797,1,0,0,0,3972,3985,5,205,0,0,3973,3975,5,116,0,0,3974,3973,1,0,0,0,3974,3975,1,0,0,0,3975,3976,1,0,0,0,3976,3980,5,214,0,0,3977,3979,3,772,386,0,3978,3977,1,0,0,0,3979,3982,1,0,0,0,3980,3978,1,0,0,0,3980,3981,1,0,0,0,3981,3983,1,0,0,0,3982,3980,1,0,0,0,3983,3985,5,216,0,0,3984,3972,1,0,0,0,3984,3974,1,0,0,0,3985,799,1,0,0,0,3986,3987,3,544,272,0,3987,3996,5,60,0,0,3988,3990,3,228,114,0,3989,3991,3,198,99,0,3990,3989,1,0,0,0,3990,3991,1,0,0,0,3991,3997,1,0,0,0,3992,3994,5,142,0,0,3993,3995,3,496,248,0,3994,3993,1,0,0,0,3994,3995,1,0,0,0,3995,3997,1,0,0,0,3996,3988,1,0,0,0,3996,3992,1,0,0,0,3997,3999,1,0,0,0,3998,4e3,3,394,197,0,3999,3998,1,0,0,0,3999,4e3,1,0,0,0,4e3,4001,1,0,0,0,4001,4002,3,798,399,0,4002,801,1,0,0,0,4003,4008,5,155,0,0,4004,4006,3,496,248,0,4005,4004,1,0,0,0,4005,4006,1,0,0,0,4006,4007,1,0,0,0,4007,4009,5,69,0,0,4008,4005,1,0,0,0,4008,4009,1,0,0,0,4009,4010,1,0,0,0,4010,4011,3,340,170,0,4011,4015,3,726,363,0,4012,4013,3,726,363,0,4013,4014,3,806,403,0,4014,4016,1,0,0,0,4015,4012,1,0,0,0,4015,4016,1,0,0,0,4016,4018,1,0,0,0,4017,4019,3,810,405,0,4018,4017,1,0,0,0,4018,4019,1,0,0,0,4019,4021,1,0,0,0,4020,4022,3,812,406,0,4021,4020,1,0,0,0,4021,4022,1,0,0,0,4022,4023,1,0,0,0,4023,4024,5,152,0,0,4024,4025,3,824,412,0,4025,4026,3,656,328,0,4026,803,1,0,0,0,4027,4052,3,726,363,0,4028,4032,5,155,0,0,4029,4030,3,726,363,0,4030,4031,3,806,403,0,4031,4033,1,0,0,0,4032,4029,1,0,0,0,4032,4033,1,0,0,0,4033,4035,1,0,0,0,4034,4036,3,810,405,0,4035,4034,1,0,0,0,4035,4036,1,0,0,0,4036,4038,1,0,0,0,4037,4039,3,812,406,0,4038,4037,1,0,0,0,4038,4039,1,0,0,0,4039,4053,1,0,0,0,4040,4041,3,726,363,0,4041,4043,3,806,403,0,4042,4044,3,810,405,0,4043,4042,1,0,0,0,4043,4044,1,0,0,0,4044,4046,1,0,0,0,4045,4047,3,812,406,0,4046,4045,1,0,0,0,4046,4047,1,0,0,0,4047,4053,1,0,0,0,4048,4050,3,810,405,0,4049,4051,3,812,406,0,4050,4049,1,0,0,0,4050,4051,1,0,0,0,4051,4053,1,0,0,0,4052,4028,1,0,0,0,4052,4040,1,0,0,0,4052,4048,1,0,0,0,4052,4053,1,0,0,0,4053,4054,1,0,0,0,4054,4055,5,152,0,0,4055,4056,3,824,412,0,4056,4057,3,656,328,0,4057,805,1,0,0,0,4058,4059,5,3,0,0,4059,4060,3,808,404,0,4060,807,1,0,0,0,4061,4062,3,702,351,0,4062,809,1,0,0,0,4063,4064,5,77,0,0,4064,4065,3,0,0,0,4065,811,1,0,0,0,4066,4067,5,53,0,0,4067,4068,3,814,407,0,4068,813,1,0,0,0,4069,4075,3,976,488,0,4070,4075,3,816,408,0,4071,4075,3,818,409,0,4072,4075,3,820,410,0,4073,4075,3,822,411,0,4074,4069,1,0,0,0,4074,4070,1,0,0,0,4074,4071,1,0,0,0,4074,4072,1,0,0,0,4074,4073,1,0,0,0,4075,815,1,0,0,0,4076,4085,3,678,339,0,4077,4081,5,214,0,0,4078,4080,3,658,329,0,4079,4078,1,0,0,0,4080,4083,1,0,0,0,4081,4079,1,0,0,0,4081,4082,1,0,0,0,4082,4084,1,0,0,0,4083,4081,1,0,0,0,4084,4086,5,216,0,0,4085,4077,1,0,0,0,4085,4086,1,0,0,0,4086,817,1,0,0,0,4087,4096,3,700,350,0,4088,4092,5,214,0,0,4089,4091,3,658,329,0,4090,4089,1,0,0,0,4091,4094,1,0,0,0,4092,4090,1,0,0,0,4092,4093,1,0,0,0,4093,4095,1,0,0,0,4094,4092,1,0,0,0,4095,4097,5,216,0,0,4096,4088,1,0,0,0,4096,4097,1,0,0,0,4097,819,1,0,0,0,4098,4107,3,716,358,0,4099,4103,5,214,0,0,4100,4102,3,658,329,0,4101,4100,1,0,0,0,4102,4105,1,0,0,0,4103,4101,1,0,0,0,4103,4104,1,0,0,0,4104,4106,1,0,0,0,4105,4103,1,0,0,0,4106,4108,5,216,0,0,4107,4099,1,0,0,0,4107,4108,1,0,0,0,4108,821,1,0,0,0,4109,4118,3,730,365,0,4110,4114,5,214,0,0,4111,4113,3,658,329,0,4112,4111,1,0,0,0,4113,4116,1,0,0,0,4114,4112,1,0,0,0,4114,4115,1,0,0,0,4115,4117,1,0,0,0,4116,4114,1,0,0,0,4117,4119,5,216,0,0,4118,4110,1,0,0,0,4118,4119,1,0,0,0,4119,823,1,0,0,0,4120,4121,3,826,413,0,4121,825,1,0,0,0,4122,4123,3,828,414,0,4123,4124,3,268,134,0,4124,827,1,0,0,0,4125,4126,3,978,489,0,4126,829,1,0,0,0,4127,4128,3,536,268,0,4128,4129,5,25,0,0,4129,4130,5,45,0,0,4130,4131,3,462,231,0,4131,4132,3,834,417,0,4132,831,1,0,0,0,4133,4134,3,544,272,0,4134,4135,5,25,0,0,4135,4136,3,674,337,0,4136,4137,3,834,417,0,4137,833,1,0,0,0,4138,4144,5,205,0,0,4139,4140,5,214,0,0,4140,4141,3,836,418,0,4141,4142,5,216,0,0,4142,4144,1,0,0,0,4143,4138,1,0,0,0,4143,4139,1,0,0,0,4144,835,1,0,0,0,4145,4147,3,838,419,0,4146,4145,1,0,0,0,4147,4150,1,0,0,0,4148,4146,1,0,0,0,4148,4149,1,0,0,0,4149,4152,1,0,0,0,4150,4148,1,0,0,0,4151,4153,3,296,148,0,4152,4151,1,0,0,0,4152,4153,1,0,0,0,4153,837,1,0,0,0,4154,4157,3,658,329,0,4155,4157,3,840,420,0,4156,4154,1,0,0,0,4156,4155,1,0,0,0,4157,839,1,0,0,0,4158,4159,3,78,39,0,4159,4160,5,134,0,0,4160,4161,3,452,226,0,4161,841,1,0,0,0,4162,4163,3,536,268,0,4163,4164,5,41,0,0,4164,4165,5,45,0,0,4165,4166,3,462,231,0,4166,4167,3,834,417,0,4167,843,1,0,0,0,4168,4169,3,544,272,0,4169,4170,5,41,0,0,4170,4171,3,848,424,0,4171,4172,3,834,417,0,4172,845,1,0,0,0,4173,4174,3,544,272,0,4174,4176,5,14,0,0,4175,4177,5,107,0,0,4176,4175,1,0,0,0,4176,4177,1,0,0,0,4177,4184,1,0,0,0,4178,4180,3,228,114,0,4179,4181,3,198,99,0,4180,4179,1,0,0,0,4180,4181,1,0,0,0,4181,4185,1,0,0,0,4182,4183,5,41,0,0,4183,4185,3,848,424,0,4184,4178,1,0,0,0,4184,4182,1,0,0,0,4185,4186,1,0,0,0,4186,4187,3,834,417,0,4187,847,1,0,0,0,4188,4190,3,496,248,0,4189,4188,1,0,0,0,4189,4190,1,0,0,0,4190,4192,1,0,0,0,4191,4193,3,394,197,0,4192,4191,1,0,0,0,4192,4193,1,0,0,0,4193,849,1,0,0,0,4194,4195,3,536,268,0,4195,4196,5,133,0,0,4196,4197,5,45,0,0,4197,4198,3,462,231,0,4198,4199,3,852,426,0,4199,851,1,0,0,0,4200,4210,5,205,0,0,4201,4205,5,214,0,0,4202,4204,3,854,427,0,4203,4202,1,0,0,0,4204,4207,1,0,0,0,4205,4203,1,0,0,0,4205,4206,1,0,0,0,4206,4208,1,0,0,0,4207,4205,1,0,0,0,4208,4210,5,216,0,0,4209,4200,1,0,0,0,4209,4201,1,0,0,0,4210,853,1,0,0,0,4211,4219,3,466,233,0,4212,4219,3,856,428,0,4213,4219,3,860,430,0,4214,4219,3,866,433,0,4215,4219,3,914,457,0,4216,4219,3,870,435,0,4217,4219,3,874,437,0,4218,4211,1,0,0,0,4218,4212,1,0,0,0,4218,4213,1,0,0,0,4218,4214,1,0,0,0,4218,4215,1,0,0,0,4218,4216,1,0,0,0,4218,4217,1,0,0,0,4219,855,1,0,0,0,4220,4221,3,78,39,0,4221,4222,3,858,429,0,4222,857,1,0,0,0,4223,4227,5,146,0,0,4224,4226,3,488,244,0,4225,4224,1,0,0,0,4226,4229,1,0,0,0,4227,4225,1,0,0,0,4227,4228,1,0,0,0,4228,4230,1,0,0,0,4229,4227,1,0,0,0,4230,4231,3,494,247,0,4231,859,1,0,0,0,4232,4233,3,78,39,0,4233,4234,3,862,431,0,4234,4235,3,864,432,0,4235,861,1,0,0,0,4236,4237,7,26,0,0,4237,863,1,0,0,0,4238,4240,3,228,114,0,4239,4241,3,198,99,0,4240,4239,1,0,0,0,4240,4241,1,0,0,0,4241,4242,1,0,0,0,4242,4243,3,852,426,0,4243,4262,1,0,0,0,4244,4246,3,488,244,0,4245,4244,1,0,0,0,4246,4249,1,0,0,0,4247,4245,1,0,0,0,4247,4248,1,0,0,0,4248,4250,1,0,0,0,4249,4247,1,0,0,0,4250,4257,5,41,0,0,4251,4253,3,488,244,0,4252,4251,1,0,0,0,4253,4254,1,0,0,0,4254,4252,1,0,0,0,4254,4255,1,0,0,0,4255,4257,1,0,0,0,4256,4247,1,0,0,0,4256,4252,1,0,0,0,4257,4258,1,0,0,0,4258,4259,3,848,424,0,4259,4260,3,834,417,0,4260,4262,1,0,0,0,4261,4238,1,0,0,0,4261,4256,1,0,0,0,4262,865,1,0,0,0,4263,4264,3,78,39,0,4264,4265,5,73,0,0,4265,4266,3,868,434,0,4266,867,1,0,0,0,4267,4269,3,228,114,0,4268,4270,3,198,99,0,4269,4268,1,0,0,0,4269,4270,1,0,0,0,4270,4271,1,0,0,0,4271,4272,3,834,417,0,4272,4291,1,0,0,0,4273,4275,3,488,244,0,4274,4273,1,0,0,0,4275,4278,1,0,0,0,4276,4274,1,0,0,0,4276,4277,1,0,0,0,4277,4279,1,0,0,0,4278,4276,1,0,0,0,4279,4286,5,32,0,0,4280,4282,3,488,244,0,4281,4280,1,0,0,0,4282,4283,1,0,0,0,4283,4281,1,0,0,0,4283,4284,1,0,0,0,4284,4286,1,0,0,0,4285,4276,1,0,0,0,4285,4281,1,0,0,0,4286,4287,1,0,0,0,4287,4288,3,974,487,0,4288,4289,3,834,417,0,4289,4291,1,0,0,0,4290,4267,1,0,0,0,4290,4285,1,0,0,0,4291,869,1,0,0,0,4292,4293,3,78,39,0,4293,4294,3,872,436,0,4294,871,1,0,0,0,4295,4299,5,5,0,0,4296,4298,3,488,244,0,4297,4296,1,0,0,0,4298,4301,1,0,0,0,4299,4297,1,0,0,0,4299,4300,1,0,0,0,4300,4302,1,0,0,0,4301,4299,1,0,0,0,4302,4303,3,494,247,0,4303,873,1,0,0,0,4304,4305,3,78,39,0,4305,4306,3,876,438,0,4306,875,1,0,0,0,4307,4311,5,140,0,0,4308,4310,3,488,244,0,4309,4308,1,0,0,0,4310,4313,1,0,0,0,4311,4309,1,0,0,0,4311,4312,1,0,0,0,4312,4314,1,0,0,0,4313,4311,1,0,0,0,4314,4315,3,494,247,0,4315,877,1,0,0,0,4316,4317,3,544,272,0,4317,4318,5,133,0,0,4318,4319,3,848,424,0,4319,4320,3,852,426,0,4320,879,1,0,0,0,4321,4326,3,544,272,0,4322,4324,5,14,0,0,4323,4325,5,107,0,0,4324,4323,1,0,0,0,4324,4325,1,0,0,0,4325,4327,1,0,0,0,4326,4322,1,0,0,0,4326,4327,1,0,0,0,4327,4328,1,0,0,0,4328,4337,5,135,0,0,4329,4331,3,228,114,0,4330,4332,3,198,99,0,4331,4330,1,0,0,0,4331,4332,1,0,0,0,4332,4338,1,0,0,0,4333,4335,5,133,0,0,4334,4336,3,496,248,0,4335,4334,1,0,0,0,4335,4336,1,0,0,0,4336,4338,1,0,0,0,4337,4329,1,0,0,0,4337,4333,1,0,0,0,4338,4340,1,0,0,0,4339,4341,3,394,197,0,4340,4339,1,0,0,0,4340,4341,1,0,0,0,4341,4344,1,0,0,0,4342,4343,5,24,0,0,4343,4345,3,882,441,0,4344,4342,1,0,0,0,4344,4345,1,0,0,0,4345,4346,1,0,0,0,4346,4347,3,852,426,0,4347,881,1,0,0,0,4348,4349,3,884,442,0,4349,883,1,0,0,0,4350,4351,3,886,443,0,4351,885,1,0,0,0,4352,4353,3,888,444,0,4353,887,1,0,0,0,4354,4355,3,340,170,0,4355,889,1,0,0,0,4356,4357,3,536,268,0,4357,4358,5,32,0,0,4358,4359,5,45,0,0,4359,4360,3,462,231,0,4360,4361,3,852,426,0,4361,891,1,0,0,0,4362,4363,3,544,272,0,4363,4364,5,32,0,0,4364,4365,3,848,424,0,4365,4366,3,852,426,0,4366,893,1,0,0,0,4367,4368,3,536,268,0,4368,4369,5,26,0,0,4369,4370,5,45,0,0,4370,4371,3,462,231,0,4371,4372,3,898,449,0,4372,895,1,0,0,0,4373,4374,3,544,272,0,4374,4375,5,26,0,0,4375,4376,3,848,424,0,4376,4377,3,898,449,0,4377,897,1,0,0,0,4378,4391,5,205,0,0,4379,4383,5,214,0,0,4380,4382,3,900,450,0,4381,4380,1,0,0,0,4382,4385,1,0,0,0,4383,4381,1,0,0,0,4383,4384,1,0,0,0,4384,4387,1,0,0,0,4385,4383,1,0,0,0,4386,4388,3,296,148,0,4387,4386,1,0,0,0,4387,4388,1,0,0,0,4388,4389,1,0,0,0,4389,4391,5,216,0,0,4390,4378,1,0,0,0,4390,4379,1,0,0,0,4391,899,1,0,0,0,4392,4398,3,658,329,0,4393,4398,3,840,420,0,4394,4398,3,856,428,0,4395,4398,3,870,435,0,4396,4398,3,902,451,0,4397,4392,1,0,0,0,4397,4393,1,0,0,0,4397,4394,1,0,0,0,4397,4395,1,0,0,0,4397,4396,1,0,0,0,4398,901,1,0,0,0,4399,4400,3,78,39,0,4400,4401,5,109,0,0,4401,4402,3,904,452,0,4402,903,1,0,0,0,4403,4405,3,488,244,0,4404,4403,1,0,0,0,4405,4408,1,0,0,0,4406,4404,1,0,0,0,4406,4407,1,0,0,0,4407,4409,1,0,0,0,4408,4406,1,0,0,0,4409,4410,3,848,424,0,4410,4411,3,852,426,0,4411,905,1,0,0,0,4412,4413,3,536,268,0,4413,4414,5,11,0,0,4414,4415,5,45,0,0,4415,4416,3,462,231,0,4416,4417,3,898,449,0,4417,907,1,0,0,0,4418,4419,3,544,272,0,4419,4420,5,11,0,0,4420,4421,3,848,424,0,4421,4422,3,898,449,0,4422,909,1,0,0,0,4423,4424,3,536,268,0,4424,4425,5,166,0,0,4425,4426,5,45,0,0,4426,4427,3,462,231,0,4427,4428,3,898,449,0,4428,911,1,0,0,0,4429,4430,3,544,272,0,4430,4431,5,166,0,0,4431,4432,3,848,424,0,4432,4433,3,898,449,0,4433,913,1,0,0,0,4434,4435,3,78,39,0,4435,4436,5,167,0,0,4436,4437,3,916,458,0,4437,915,1,0,0,0,4438,4442,3,228,114,0,4439,4441,3,202,101,0,4440,4439,1,0,0,0,4441,4444,1,0,0,0,4442,4440,1,0,0,0,4442,4443,1,0,0,0,4443,4445,1,0,0,0,4444,4442,1,0,0,0,4445,4446,3,852,426,0,4446,4465,1,0,0,0,4447,4449,3,488,244,0,4448,4447,1,0,0,0,4449,4452,1,0,0,0,4450,4448,1,0,0,0,4450,4451,1,0,0,0,4451,4453,1,0,0,0,4452,4450,1,0,0,0,4453,4460,5,133,0,0,4454,4456,3,488,244,0,4455,4454,1,0,0,0,4456,4457,1,0,0,0,4457,4455,1,0,0,0,4457,4458,1,0,0,0,4458,4460,1,0,0,0,4459,4450,1,0,0,0,4459,4455,1,0,0,0,4460,4461,1,0,0,0,4461,4462,3,848,424,0,4462,4463,3,852,426,0,4463,4465,1,0,0,0,4464,4438,1,0,0,0,4464,4459,1,0,0,0,4465,917,1,0,0,0,4466,4467,3,536,268,0,4467,4468,5,162,0,0,4468,4469,5,26,0,0,4469,4470,5,45,0,0,4470,4471,3,462,231,0,4471,4472,3,898,449,0,4472,919,1,0,0,0,4473,4474,3,544,272,0,4474,4475,5,162,0,0,4475,4476,5,26,0,0,4476,4477,3,848,424,0,4477,4478,3,898,449,0,4478,921,1,0,0,0,4479,4480,3,544,272,0,4480,4490,5,81,0,0,4481,4483,3,228,114,0,4482,4484,3,198,99,0,4483,4482,1,0,0,0,4483,4484,1,0,0,0,4484,4491,1,0,0,0,4485,4486,5,162,0,0,4486,4488,5,26,0,0,4487,4489,3,496,248,0,4488,4487,1,0,0,0,4488,4489,1,0,0,0,4489,4491,1,0,0,0,4490,4481,1,0,0,0,4490,4485,1,0,0,0,4491,4493,1,0,0,0,4492,4494,3,394,197,0,4493,4492,1,0,0,0,4493,4494,1,0,0,0,4494,4495,1,0,0,0,4495,4496,3,898,449,0,4496,923,1,0,0,0,4497,4498,3,536,268,0,4498,4499,5,169,0,0,4499,4500,5,45,0,0,4500,4501,3,462,231,0,4501,4502,3,926,463,0,4502,925,1,0,0,0,4503,4513,5,205,0,0,4504,4508,5,214,0,0,4505,4507,3,928,464,0,4506,4505,1,0,0,0,4507,4510,1,0,0,0,4508,4506,1,0,0,0,4508,4509,1,0,0,0,4509,4511,1,0,0,0,4510,4508,1,0,0,0,4511,4513,5,216,0,0,4512,4503,1,0,0,0,4512,4504,1,0,0,0,4513,927,1,0,0,0,4514,4518,3,466,233,0,4515,4518,3,440,220,0,4516,4518,3,930,465,0,4517,4514,1,0,0,0,4517,4515,1,0,0,0,4517,4516,1,0,0,0,4518,929,1,0,0,0,4519,4520,3,78,39,0,4520,4521,5,129,0,0,4521,4522,3,932,466,0,4522,931,1,0,0,0,4523,4525,3,228,114,0,4524,4526,3,198,99,0,4525,4524,1,0,0,0,4525,4526,1,0,0,0,4526,4527,1,0,0,0,4527,4528,3,500,250,0,4528,4545,1,0,0,0,4529,4531,3,488,244,0,4530,4529,1,0,0,0,4531,4534,1,0,0,0,4532,4530,1,0,0,0,4532,4533,1,0,0,0,4533,4535,1,0,0,0,4534,4532,1,0,0,0,4535,4542,5,130,0,0,4536,4538,3,488,244,0,4537,4536,1,0,0,0,4538,4539,1,0,0,0,4539,4537,1,0,0,0,4539,4540,1,0,0,0,4540,4542,1,0,0,0,4541,4532,1,0,0,0,4541,4537,1,0,0,0,4542,4543,1,0,0,0,4543,4545,3,494,247,0,4544,4523,1,0,0,0,4544,4541,1,0,0,0,4545,933,1,0,0,0,4546,4547,3,544,272,0,4547,4549,5,169,0,0,4548,4550,3,496,248,0,4549,4548,1,0,0,0,4549,4550,1,0,0,0,4550,4552,1,0,0,0,4551,4553,3,394,197,0,4552,4551,1,0,0,0,4552,4553,1,0,0,0,4553,4554,1,0,0,0,4554,4555,3,936,468,0,4555,935,1,0,0,0,4556,4566,5,205,0,0,4557,4561,5,214,0,0,4558,4560,3,938,469,0,4559,4558,1,0,0,0,4560,4563,1,0,0,0,4561,4559,1,0,0,0,4561,4562,1,0,0,0,4562,4564,1,0,0,0,4563,4561,1,0,0,0,4564,4566,5,216,0,0,4565,4556,1,0,0,0,4565,4557,1,0,0,0,4566,937,1,0,0,0,4567,4572,3,466,233,0,4568,4572,3,440,220,0,4569,4572,3,930,465,0,4570,4572,3,940,470,0,4571,4567,1,0,0,0,4571,4568,1,0,0,0,4571,4569,1,0,0,0,4571,4570,1,0,0,0,4572,939,1,0,0,0,4573,4576,5,62,0,0,4574,4577,3,942,471,0,4575,4577,3,944,472,0,4576,4574,1,0,0,0,4576,4575,1,0,0,0,4577,4578,1,0,0,0,4578,4579,3,48,24,0,4579,941,1,0,0,0,4580,4581,3,96,48,0,4581,943,1,0,0,0,4582,4583,3,98,49,0,4583,945,1,0,0,0,4584,4585,3,536,268,0,4585,4586,5,170,0,0,4586,4587,5,45,0,0,4587,4588,3,462,231,0,4588,4589,3,852,426,0,4589,947,1,0,0,0,4590,4591,3,544,272,0,4591,4592,5,170,0,0,4592,4593,3,848,424,0,4593,4594,3,852,426,0,4594,949,1,0,0,0,4595,4596,3,536,268,0,4596,4597,5,130,0,0,4597,4598,5,45,0,0,4598,4599,3,460,230,0,4599,951,1,0,0,0,4600,4601,3,544,272,0,4601,4602,5,130,0,0,4602,4603,3,494,247,0,4603,953,1,0,0,0,4604,4606,5,2,0,0,4605,4604,1,0,0,0,4605,4606,1,0,0,0,4606,4610,1,0,0,0,4607,4609,3,456,228,0,4608,4607,1,0,0,0,4609,4612,1,0,0,0,4610,4608,1,0,0,0,4610,4611,1,0,0,0,4611,4613,1,0,0,0,4612,4610,1,0,0,0,4613,4614,5,102,0,0,4614,4615,5,45,0,0,4615,4616,3,460,230,0,4616,955,1,0,0,0,4617,4618,3,222,111,0,4618,957,1,0,0,0,4619,4621,3,488,244,0,4620,4619,1,0,0,0,4621,4624,1,0,0,0,4622,4620,1,0,0,0,4622,4623,1,0,0,0,4623,4625,1,0,0,0,4624,4622,1,0,0,0,4625,4626,7,22,0,0,4626,4636,3,960,480,0,4627,4628,5,1,0,0,4628,4633,3,56,28,0,4629,4630,5,200,0,0,4630,4632,3,56,28,0,4631,4629,1,0,0,0,4632,4635,1,0,0,0,4633,4631,1,0,0,0,4633,4634,1,0,0,0,4634,4637,1,0,0,0,4635,4633,1,0,0,0,4636,4627,1,0,0,0,4636,4637,1,0,0,0,4637,4638,1,0,0,0,4638,4639,3,424,212,0,4639,959,1,0,0,0,4640,4642,3,46,23,0,4641,4640,1,0,0,0,4641,4642,1,0,0,0,4642,4646,1,0,0,0,4643,4647,5,204,0,0,4644,4645,5,158,0,0,4645,4647,5,24,0,0,4646,4643,1,0,0,0,4646,4644,1,0,0,0,4647,4649,1,0,0,0,4648,4641,1,0,0,0,4648,4649,1,0,0,0,4649,4650,1,0,0,0,4650,4651,3,222,111,0,4651,961,1,0,0,0,4652,4653,3,964,482,0,4653,963,1,0,0,0,4654,4656,5,127,0,0,4655,4654,1,0,0,0,4655,4656,1,0,0,0,4656,4658,1,0,0,0,4657,4659,7,19,0,0,4658,4657,1,0,0,0,4658,4659,1,0,0,0,4659,4660,1,0,0,0,4660,4662,3,234,117,0,4661,4663,3,198,99,0,4662,4661,1,0,0,0,4662,4663,1,0,0,0,4663,4665,1,0,0,0,4664,4666,3,394,197,0,4665,4664,1,0,0,0,4665,4666,1,0,0,0,4666,4667,1,0,0,0,4667,4668,3,424,212,0,4668,965,1,0,0,0,4669,4671,3,454,227,0,4670,4669,1,0,0,0,4670,4671,1,0,0,0,4671,4673,1,0,0,0,4672,4674,3,456,228,0,4673,4672,1,0,0,0,4674,4675,1,0,0,0,4675,4673,1,0,0,0,4675,4676,1,0,0,0,4676,4677,1,0,0,0,4677,4678,5,45,0,0,4678,4679,3,460,230,0,4679,967,1,0,0,0,4680,4682,3,490,245,0,4681,4683,3,488,244,0,4682,4681,1,0,0,0,4683,4684,1,0,0,0,4684,4682,1,0,0,0,4684,4685,1,0,0,0,4685,4686,1,0,0,0,4686,4687,3,494,247,0,4687,969,1,0,0,0,4688,4691,3,96,48,0,4689,4691,3,972,486,0,4690,4688,1,0,0,0,4690,4689,1,0,0,0,4691,971,1,0,0,0,4692,4693,3,90,45,0,4693,4694,5,183,0,0,4694,4697,5,198,0,0,4695,4696,5,183,0,0,4696,4698,5,179,0,0,4697,4695,1,0,0,0,4697,4698,1,0,0,0,4698,973,1,0,0,0,4699,4701,3,496,248,0,4700,4699,1,0,0,0,4700,4701,1,0,0,0,4701,4703,1,0,0,0,4702,4704,3,394,197,0,4703,4702,1,0,0,0,4703,4704,1,0,0,0,4704,975,1,0,0,0,4705,4706,1,0,0,0,4706,977,1,0,0,0,4707,4708,1,0,0,0,4708,979,1,0,0,0,4709,4710,1,0,0,0,4710,981,1,0,0,0,4711,4712,1,0,0,0,4712,983,1,0,0,0,4713,4714,5,218,0,0,4714,985,1,0,0,0,4715,4716,5,218,0,0,4716,987,1,0,0,0,4717,4718,1,0,0,0,4718,989,1,0,0,0,518,1005,1061,1068,1084,1086,1088,1098,1107,1113,1116,1121,1143,1152,1160,1172,1200,1207,1215,1219,1223,1227,1232,1237,1240,1247,1256,1264,1271,1281,1285,1293,1296,1298,1302,1308,1312,1318,1320,1329,1337,1345,1352,1356,1361,1364,1370,1384,1387,1395,1402,1408,1412,1419,1424,1431,1434,1440,1446,1448,1456,1484,1496,1504,1509,1513,1516,1519,1523,1525,1530,1539,1549,1558,1567,1576,1585,1593,1597,1603,1607,1609,1624,1632,1637,1639,1647,1656,1666,1671,1673,1681,1690,1700,1708,1716,1724,1729,1744,1747,1750,1754,1759,1768,1773,1775,1788,1791,1795,1799,1802,1807,1812,1815,1818,1821,1824,1830,1835,1845,1847,1852,1857,1861,1866,1873,1876,1882,1890,1904,1910,1913,1918,1925,1928,1933,1937,1939,1943,1947,1949,1951,1958,1965,1973,1982,1999,2007,2009,2016,2023,2030,2035,2037,2050,2058,2066,2071,2073,2086,2095,2097,2104,2110,2112,2120,2129,2139,2144,2147,2185,2188,2191,2197,2200,2205,2207,2214,2224,2232,2237,2256,2259,2262,2268,2270,2283,2286,2289,2295,2297,2308,2322,2326,2328,2332,2345,2358,2365,2369,2414,2419,2436,2454,2459,2479,2483,2490,2493,2500,2503,2507,2514,2516,2521,2525,2529,2533,2537,2539,2544,2547,2552,2559,2561,2570,2585,2587,2593,2597,2604,2617,2624,2635,2641,2648,2659,2662,2667,2672,2674,2683,2692,2694,2698,2704,2709,2712,2716,2719,2726,2733,2739,2747,2754,2758,2766,2769,2776,2785,2794,2799,2831,2835,2842,2847,2854,2857,2864,2868,2875,2880,2887,2890,2900,2922,2925,2928,2931,2935,2944,2950,2954,2960,2963,2966,2977,2990,3003,3007,3024,3042,3065,3073,3088,3100,3102,3106,3112,3121,3125,3130,3139,3145,3156,3159,3164,3176,3183,3189,3200,3204,3206,3218,3263,3266,3270,3274,3280,3294,3302,3304,3315,3317,3336,3340,3346,3351,3361,3369,3380,3383,3387,3390,3394,3408,3416,3421,3436,3440,3444,3457,3460,3464,3471,3477,3500,3507,3523,3527,3534,3538,3544,3548,3556,3559,3563,3585,3588,3597,3601,3603,3606,3616,3620,3624,3630,3634,3637,3642,3648,3655,3662,3669,3678,3686,3692,3695,3698,3708,3713,3718,3723,3728,3733,3739,3745,3760,3773,3779,3783,3794,3796,3804,3806,3812,3824,3831,3841,3844,3849,3866,3868,3885,3891,3895,3899,3905,3913,3918,3936,3947,3974,3980,3984,3990,3994,3996,3999,4005,4008,4015,4018,4021,4032,4035,4038,4043,4046,4050,4052,4074,4081,4085,4092,4096,4103,4107,4114,4118,4143,4148,4152,4156,4176,4180,4184,4189,4192,4205,4209,4218,4227,4240,4247,4254,4256,4261,4269,4276,4283,4285,4290,4299,4311,4324,4326,4331,4335,4337,4340,4344,4383,4387,4390,4397,4406,4442,4450,4457,4459,4464,4483,4488,4490,4493,4508,4512,4517,4525,4532,4539,4541,4544,4549,4552,4561,4565,4571,4576,4605,4610,4622,4633,4636,4641,4646,4648,4655,4658,4662,4665,4670,4675,4684,4690,4697,4700,4703];static __ATN;static get _ATN(){return r.__ATN||(r.__ATN=new oi().deserialize(r._serializedATN)),r.__ATN}static vocabulary=new lr(r.literalNames,r.symbolicNames,[]);get vocabulary(){return r.vocabulary}static decisionsToDFA=r._ATN.decisionToState.map((e,t)=>new kr(e,t))},ae=class r extends u{constructor(e,t){super(e,t)}IF(){return this.getToken(s.IF,0)}ownedExpression(e){return e===void 0?this.getRuleContexts(r):this.getRuleContext(e,r)}QUESTION(){return this.getToken(s.QUESTION,0)}ELSE(){return this.getToken(s.ELSE,0)}PLUS(){return this.getToken(s.PLUS,0)}MINUS(){return this.getToken(s.MINUS,0)}TILDE(){return this.getToken(s.TILDE,0)}NOT(){return this.getToken(s.NOT,0)}typeReference(){return this.getRuleContext(0,Qn)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}AT_AT(){return this.getToken(s.AT_AT,0)}ALL(){return this.getToken(s.ALL,0)}baseExpression(){return this.getRuleContext(0,qu)}QUESTION_QUESTION(){return this.getToken(s.QUESTION_QUESTION,0)}IMPLIES(){return this.getToken(s.IMPLIES,0)}OR(){return this.getToken(s.OR,0)}AND(){return this.getToken(s.AND,0)}XOR(){return this.getToken(s.XOR,0)}PIPE(){return this.getToken(s.PIPE,0)}AMP(){return this.getToken(s.AMP,0)}EQ_EQ(){return this.getToken(s.EQ_EQ,0)}BANG_EQ(){return this.getToken(s.BANG_EQ,0)}EQ_EQ_EQ(){return this.getToken(s.EQ_EQ_EQ,0)}BANG_EQ_EQ(){return this.getToken(s.BANG_EQ_EQ,0)}LT(){return this.getToken(s.LT,0)}GT(){return this.getToken(s.GT,0)}LE(){return this.getToken(s.LE,0)}GE(){return this.getToken(s.GE,0)}DOT_DOT(){return this.getToken(s.DOT_DOT,0)}STAR(){return this.getToken(s.STAR,0)}SLASH(){return this.getToken(s.SLASH,0)}PERCENT(){return this.getToken(s.PERCENT,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}CARET(){return this.getToken(s.CARET,0)}ISTYPE(){return this.getToken(s.ISTYPE,0)}HASTYPE(){return this.getToken(s.HASTYPE,0)}AS(){return this.getToken(s.AS,0)}META(){return this.getToken(s.META,0)}LBRACK(){return this.getToken(s.LBRACK,0)}RBRACK(){return this.getToken(s.RBRACK,0)}sequenceExpressionList(){return this.getRuleContext(0,$n)}HASH(){return this.getToken(s.HASH,0)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}argumentList(){return this.getRuleContext(0,li)}DOT(){return this.getToken(s.DOT,0)}qualifiedName(){return this.getRuleContext(0,B)}DOT_QUESTION(){return this.getToken(s.DOT_QUESTION,0)}bodyExpression(){return this.getRuleContext(0,Yn)}ARROW(){return this.getToken(s.ARROW,0)}get ruleIndex(){return s.RULE_ownedExpression}enterRule(e){e.enterOwnedExpression&&e.enterOwnedExpression(this)}exitRule(e){e.exitOwnedExpression&&e.exitOwnedExpression(this)}accept(e){return e.visitOwnedExpression?e.visitOwnedExpression(this):e.visitChildren(this)}},Qn=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_typeReference}enterRule(e){e.enterTypeReference&&e.enterTypeReference(this)}exitRule(e){e.exitTypeReference&&e.exitTypeReference(this)}accept(e){return e.visitTypeReference?e.visitTypeReference(this):e.visitChildren(this)}},$n=class extends u{constructor(e,t){super(e,t)}ownedExpression(e){return e===void 0?this.getRuleContexts(ae):this.getRuleContext(e,ae)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_sequenceExpressionList}enterRule(e){e.enterSequenceExpressionList&&e.enterSequenceExpressionList(this)}exitRule(e){e.exitSequenceExpressionList&&e.exitSequenceExpressionList(this)}accept(e){return e.visitSequenceExpressionList?e.visitSequenceExpressionList(this):e.visitChildren(this)}},qu=class extends u{constructor(e,t){super(e,t)}nullExpression(){return this.getRuleContext(0,ju)}literalExpression(){return this.getRuleContext(0,sa)}qualifiedName(){return this.getRuleContext(0,B)}argumentList(){return this.getRuleContext(0,li)}DOT(){return this.getToken(s.DOT,0)}METADATA(){return this.getToken(s.METADATA,0)}constructorExpression(){return this.getRuleContext(0,Wu)}bodyExpression(){return this.getRuleContext(0,Yn)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}sequenceExpressionList(){return this.getRuleContext(0,$n)}get ruleIndex(){return s.RULE_baseExpression}enterRule(e){e.enterBaseExpression&&e.enterBaseExpression(this)}exitRule(e){e.exitBaseExpression&&e.exitBaseExpression(this)}accept(e){return e.visitBaseExpression?e.visitBaseExpression(this):e.visitChildren(this)}},ju=class extends u{constructor(e,t){super(e,t)}NULL(){return this.getToken(s.NULL,0)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_nullExpression}enterRule(e){e.enterNullExpression&&e.enterNullExpression(this)}exitRule(e){e.exitNullExpression&&e.exitNullExpression(this)}accept(e){return e.visitNullExpression?e.visitNullExpression(this):e.visitChildren(this)}},Gu=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_featureReferenceExpression}enterRule(e){e.enterFeatureReferenceExpression&&e.enterFeatureReferenceExpression(this)}exitRule(e){e.exitFeatureReferenceExpression&&e.exitFeatureReferenceExpression(this)}accept(e){return e.visitFeatureReferenceExpression?e.visitFeatureReferenceExpression(this):e.visitChildren(this)}},H3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}DOT(){return this.getToken(s.DOT,0)}METADATA(){return this.getToken(s.METADATA,0)}get ruleIndex(){return s.RULE_metadataAccessExpression}enterRule(e){e.enterMetadataAccessExpression&&e.enterMetadataAccessExpression(this)}exitRule(e){e.exitMetadataAccessExpression&&e.exitMetadataAccessExpression(this)}accept(e){return e.visitMetadataAccessExpression?e.visitMetadataAccessExpression(this):e.visitChildren(this)}},B3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}argumentList(){return this.getRuleContext(0,li)}get ruleIndex(){return s.RULE_invocationExpression}enterRule(e){e.enterInvocationExpression&&e.enterInvocationExpression(this)}exitRule(e){e.exitInvocationExpression&&e.exitInvocationExpression(this)}accept(e){return e.visitInvocationExpression?e.visitInvocationExpression(this):e.visitChildren(this)}},Wu=class extends u{constructor(e,t){super(e,t)}NEW(){return this.getToken(s.NEW,0)}qualifiedName(){return this.getRuleContext(0,B)}argumentList(){return this.getRuleContext(0,li)}get ruleIndex(){return s.RULE_constructorExpression}enterRule(e){e.enterConstructorExpression&&e.enterConstructorExpression(this)}exitRule(e){e.exitConstructorExpression&&e.exitConstructorExpression(this)}accept(e){return e.visitConstructorExpression?e.visitConstructorExpression(this):e.visitChildren(this)}},Yn=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,ns)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_bodyExpression}enterRule(e){e.enterBodyExpression&&e.enterBodyExpression(this)}exitRule(e){e.exitBodyExpression&&e.exitBodyExpression(this)}accept(e){return e.visitBodyExpression?e.visitBodyExpression(this):e.visitChildren(this)}},li=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}RPAREN(){return this.getToken(s.RPAREN,0)}positionalArgumentList(){return this.getRuleContext(0,zu)}namedArgumentList(){return this.getRuleContext(0,Ku)}get ruleIndex(){return s.RULE_argumentList}enterRule(e){e.enterArgumentList&&e.enterArgumentList(this)}exitRule(e){e.exitArgumentList&&e.exitArgumentList(this)}accept(e){return e.visitArgumentList?e.visitArgumentList(this):e.visitChildren(this)}},zu=class extends u{constructor(e,t){super(e,t)}ownedExpression(e){return e===void 0?this.getRuleContexts(ae):this.getRuleContext(e,ae)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_positionalArgumentList}enterRule(e){e.enterPositionalArgumentList&&e.enterPositionalArgumentList(this)}exitRule(e){e.exitPositionalArgumentList&&e.exitPositionalArgumentList(this)}accept(e){return e.visitPositionalArgumentList?e.visitPositionalArgumentList(this):e.visitChildren(this)}},Ku=class extends u{constructor(e,t){super(e,t)}namedArgument(e){return e===void 0?this.getRuleContexts(Jn):this.getRuleContext(e,Jn)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_namedArgumentList}enterRule(e){e.enterNamedArgumentList&&e.enterNamedArgumentList(this)}exitRule(e){e.exitNamedArgumentList&&e.exitNamedArgumentList(this)}accept(e){return e.visitNamedArgumentList?e.visitNamedArgumentList(this):e.visitChildren(this)}},Jn=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}EQ(){return this.getToken(s.EQ,0)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_namedArgument}enterRule(e){e.enterNamedArgument&&e.enterNamedArgument(this)}exitRule(e){e.exitNamedArgument&&e.exitNamedArgument(this)}accept(e){return e.visitNamedArgument?e.visitNamedArgument(this):e.visitChildren(this)}},sa=class extends u{constructor(e,t){super(e,t)}literalBoolean(){return this.getRuleContext(0,Qu)}literalString(){return this.getRuleContext(0,$u)}literalInteger(){return this.getRuleContext(0,Yu)}literalReal(){return this.getRuleContext(0,Ju)}literalInfinity(){return this.getRuleContext(0,Xu)}get ruleIndex(){return s.RULE_literalExpression}enterRule(e){e.enterLiteralExpression&&e.enterLiteralExpression(this)}exitRule(e){e.exitLiteralExpression&&e.exitLiteralExpression(this)}accept(e){return e.visitLiteralExpression?e.visitLiteralExpression(this):e.visitChildren(this)}},Qu=class extends u{constructor(e,t){super(e,t)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_literalBoolean}enterRule(e){e.enterLiteralBoolean&&e.enterLiteralBoolean(this)}exitRule(e){e.exitLiteralBoolean&&e.exitLiteralBoolean(this)}accept(e){return e.visitLiteralBoolean?e.visitLiteralBoolean(this):e.visitChildren(this)}},$u=class extends u{constructor(e,t){super(e,t)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}get ruleIndex(){return s.RULE_literalString}enterRule(e){e.enterLiteralString&&e.enterLiteralString(this)}exitRule(e){e.exitLiteralString&&e.exitLiteralString(this)}accept(e){return e.visitLiteralString?e.visitLiteralString(this):e.visitChildren(this)}},Yu=class extends u{constructor(e,t){super(e,t)}INTEGER(){return this.getToken(s.INTEGER,0)}get ruleIndex(){return s.RULE_literalInteger}enterRule(e){e.enterLiteralInteger&&e.enterLiteralInteger(this)}exitRule(e){e.exitLiteralInteger&&e.exitLiteralInteger(this)}accept(e){return e.visitLiteralInteger?e.visitLiteralInteger(this):e.visitChildren(this)}},Ju=class extends u{constructor(e,t){super(e,t)}REAL(){return this.getToken(s.REAL,0)}get ruleIndex(){return s.RULE_literalReal}enterRule(e){e.enterLiteralReal&&e.enterLiteralReal(this)}exitRule(e){e.exitLiteralReal&&e.exitLiteralReal(this)}accept(e){return e.visitLiteralReal?e.visitLiteralReal(this):e.visitChildren(this)}},Xu=class extends u{constructor(e,t){super(e,t)}STAR(){return this.getToken(s.STAR,0)}get ruleIndex(){return s.RULE_literalInfinity}enterRule(e){e.enterLiteralInfinity&&e.enterLiteralInfinity(this)}exitRule(e){e.exitLiteralInfinity&&e.exitLiteralInfinity(this)}accept(e){return e.visitLiteralInfinity?e.visitLiteralInfinity(this):e.visitChildren(this)}},Zu=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_argumentMember}enterRule(e){e.enterArgumentMember&&e.enterArgumentMember(this)}exitRule(e){e.exitArgumentMember&&e.exitArgumentMember(this)}accept(e){return e.visitArgumentMember?e.visitArgumentMember(this):e.visitChildren(this)}},ec=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_argumentExpressionMember}enterRule(e){e.enterArgumentExpressionMember&&e.enterArgumentExpressionMember(this)}exitRule(e){e.exitArgumentExpressionMember&&e.exitArgumentExpressionMember(this)}accept(e){return e.visitArgumentExpressionMember?e.visitArgumentExpressionMember(this):e.visitChildren(this)}},xt=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}STRING(){return this.getToken(s.STRING,0)}get ruleIndex(){return s.RULE_name}enterRule(e){e.enterName&&e.enterName(this)}exitRule(e){e.exitName&&e.exitName(this)}accept(e){return e.visitName?e.visitName(this):e.visitChildren(this)}},ve=class extends u{constructor(e,t){super(e,t)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(xt):this.getRuleContext(e,xt)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_identification}enterRule(e){e.enterIdentification&&e.enterIdentification(this)}exitRule(e){e.exitIdentification&&e.exitIdentification(this)}accept(e){return e.visitIdentification?e.visitIdentification(this):e.visitChildren(this)}},Ze=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}relationshipOwnedElement(e){return e===void 0?this.getRuleContexts(aa):this.getRuleContext(e,aa)}ownedAnnotation(e){return e===void 0?this.getRuleContexts(Xn):this.getRuleContext(e,Xn)}get ruleIndex(){return s.RULE_relationshipBody}enterRule(e){e.enterRelationshipBody&&e.enterRelationshipBody(this)}exitRule(e){e.exitRelationshipBody&&e.exitRelationshipBody(this)}accept(e){return e.visitRelationshipBody?e.visitRelationshipBody(this):e.visitChildren(this)}},aa=class extends u{constructor(e,t){super(e,t)}ownedRelatedElement(){return this.getRuleContext(0,tc)}ownedAnnotation(){return this.getRuleContext(0,Xn)}get ruleIndex(){return s.RULE_relationshipOwnedElement}enterRule(e){e.enterRelationshipOwnedElement&&e.enterRelationshipOwnedElement(this)}exitRule(e){e.exitRelationshipOwnedElement&&e.exitRelationshipOwnedElement(this)}accept(e){return e.visitRelationshipOwnedElement?e.visitRelationshipOwnedElement(this):e.visitChildren(this)}},tc=class extends u{constructor(e,t){super(e,t)}nonFeatureElement(){return this.getRuleContext(0,da)}featureElement(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_ownedRelatedElement}enterRule(e){e.enterOwnedRelatedElement&&e.enterOwnedRelatedElement(this)}exitRule(e){e.exitOwnedRelatedElement&&e.exitOwnedRelatedElement(this)}accept(e){return e.visitOwnedRelatedElement?e.visitOwnedRelatedElement(this):e.visitChildren(this)}},oa=class extends u{constructor(e,t){super(e,t)}DEPENDENCY(){return this.getToken(s.DEPENDENCY,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}TO(){return this.getToken(s.TO,0)}relationshipBody(){return this.getRuleContext(0,Ze)}prefixMetadataAnnotation(e){return e===void 0?this.getRuleContexts(Da):this.getRuleContext(e,Da)}FROM(){return this.getToken(s.FROM,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}identification(){return this.getRuleContext(0,ve)}dependencyDeclaration(){return this.getRuleContext(0,Q1)}get ruleIndex(){return s.RULE_dependency}enterRule(e){e.enterDependency&&e.enterDependency(this)}exitRule(e){e.exitDependency&&e.exitDependency(this)}accept(e){return e.visitDependency?e.visitDependency(this):e.visitChildren(this)}},Fr=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_annotation}enterRule(e){e.enterAnnotation&&e.enterAnnotation(this)}exitRule(e){e.exitAnnotation&&e.exitAnnotation(this)}accept(e){return e.visitAnnotation?e.visitAnnotation(this):e.visitChildren(this)}},Xn=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Bi)}get ruleIndex(){return s.RULE_ownedAnnotation}enterRule(e){e.enterOwnedAnnotation&&e.enterOwnedAnnotation(this)}exitRule(e){e.exitOwnedAnnotation&&e.exitOwnedAnnotation(this)}accept(e){return e.visitOwnedAnnotation?e.visitOwnedAnnotation(this):e.visitChildren(this)}},Bi=class extends u{constructor(e,t){super(e,t)}comment(){return this.getRuleContext(0,rc)}documentation(){return this.getRuleContext(0,ic)}textualRepresentation(){return this.getRuleContext(0,nc)}metadataFeature(){return this.getRuleContext(0,G1)}get ruleIndex(){return s.RULE_annotatingElement}enterRule(e){e.enterAnnotatingElement&&e.enterAnnotatingElement(this)}exitRule(e){e.exitAnnotatingElement&&e.exitAnnotatingElement(this)}accept(e){return e.visitAnnotatingElement?e.visitAnnotatingElement(this):e.visitChildren(this)}},rc=class extends u{constructor(e,t){super(e,t)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}COMMENT(){return this.getToken(s.COMMENT,0)}LOCALE(){return this.getToken(s.LOCALE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}identification(){return this.getRuleContext(0,ve)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Fr):this.getRuleContext(e,Fr)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_comment}enterRule(e){e.enterComment&&e.enterComment(this)}exitRule(e){e.exitComment&&e.exitComment(this)}accept(e){return e.visitComment?e.visitComment(this):e.visitChildren(this)}},ic=class extends u{constructor(e,t){super(e,t)}DOC(){return this.getToken(s.DOC,0)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}identification(){return this.getRuleContext(0,ve)}LOCALE(){return this.getToken(s.LOCALE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}get ruleIndex(){return s.RULE_documentation}enterRule(e){e.enterDocumentation&&e.enterDocumentation(this)}exitRule(e){e.exitDocumentation&&e.exitDocumentation(this)}accept(e){return e.visitDocumentation?e.visitDocumentation(this):e.visitChildren(this)}},nc=class extends u{constructor(e,t){super(e,t)}LANGUAGE(){return this.getToken(s.LANGUAGE,0)}DOUBLE_STRING(){return this.getToken(s.DOUBLE_STRING,0)}REGULAR_COMMENT(){return this.getToken(s.REGULAR_COMMENT,0)}REP(){return this.getToken(s.REP,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_textualRepresentation}enterRule(e){e.enterTextualRepresentation&&e.enterTextualRepresentation(this)}exitRule(e){e.exitTextualRepresentation&&e.exitTextualRepresentation(this)}accept(e){return e.visitTextualRepresentation?e.visitTextualRepresentation(this):e.visitChildren(this)}},_3=class extends u{constructor(e,t){super(e,t)}EOF(){return this.getToken(s.EOF,0)}packageBodyElement(e){return e===void 0?this.getRuleContexts(Ki):this.getRuleContext(e,Ki)}get ruleIndex(){return s.RULE_rootNamespace}enterRule(e){e.enterRootNamespace&&e.enterRootNamespace(this)}exitRule(e){e.exitRootNamespace&&e.exitRootNamespace(this)}accept(e){return e.visitRootNamespace?e.visitRootNamespace(this):e.visitChildren(this)}},sc=class extends u{constructor(e,t){super(e,t)}namespaceDeclaration(){return this.getRuleContext(0,ac)}namespaceBody(){return this.getRuleContext(0,oc)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}get ruleIndex(){return s.RULE_namespace}enterRule(e){e.enterNamespace&&e.enterNamespace(this)}exitRule(e){e.exitNamespace&&e.exitNamespace(this)}accept(e){return e.visitNamespace?e.visitNamespace(this):e.visitChildren(this)}},ac=class extends u{constructor(e,t){super(e,t)}NAMESPACE(){return this.getToken(s.NAMESPACE,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_namespaceDeclaration}enterRule(e){e.enterNamespaceDeclaration&&e.enterNamespaceDeclaration(this)}exitRule(e){e.exitNamespaceDeclaration&&e.exitNamespaceDeclaration(this)}accept(e){return e.visitNamespaceDeclaration?e.visitNamespaceDeclaration(this):e.visitChildren(this)}},oc=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}namespaceBodyElement(e){return e===void 0?this.getRuleContexts(la):this.getRuleContext(e,la)}get ruleIndex(){return s.RULE_namespaceBody}enterRule(e){e.enterNamespaceBody&&e.enterNamespaceBody(this)}exitRule(e){e.exitNamespaceBody&&e.exitNamespaceBody(this)}accept(e){return e.visitNamespaceBody?e.visitNamespaceBody(this):e.visitChildren(this)}},la=class extends u{constructor(e,t){super(e,t)}namespaceMember(){return this.getRuleContext(0,lc)}aliasMember(){return this.getRuleContext(0,ur)}importRule(){return this.getRuleContext(0,zt)}get ruleIndex(){return s.RULE_namespaceBodyElement}enterRule(e){e.enterNamespaceBodyElement&&e.enterNamespaceBodyElement(this)}exitRule(e){e.exitNamespaceBodyElement&&e.exitNamespaceBodyElement(this)}accept(e){return e.visitNamespaceBodyElement?e.visitNamespaceBodyElement(this):e.visitChildren(this)}},oe=class extends u{constructor(e,t){super(e,t)}visibilityIndicator(){return this.getRuleContext(0,ua)}get ruleIndex(){return s.RULE_memberPrefix}enterRule(e){e.enterMemberPrefix&&e.enterMemberPrefix(this)}exitRule(e){e.exitMemberPrefix&&e.exitMemberPrefix(this)}accept(e){return e.visitMemberPrefix?e.visitMemberPrefix(this):e.visitChildren(this)}},ua=class extends u{constructor(e,t){super(e,t)}PUBLIC(){return this.getToken(s.PUBLIC,0)}PRIVATE(){return this.getToken(s.PRIVATE,0)}PROTECTED(){return this.getToken(s.PROTECTED,0)}get ruleIndex(){return s.RULE_visibilityIndicator}enterRule(e){e.enterVisibilityIndicator&&e.enterVisibilityIndicator(this)}exitRule(e){e.exitVisibilityIndicator&&e.exitVisibilityIndicator(this)}accept(e){return e.visitVisibilityIndicator?e.visitVisibilityIndicator(this):e.visitChildren(this)}},lc=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Zn)}namespaceFeatureMember(){return this.getRuleContext(0,uc)}get ruleIndex(){return s.RULE_namespaceMember}enterRule(e){e.enterNamespaceMember&&e.enterNamespaceMember(this)}exitRule(e){e.exitNamespaceMember&&e.exitNamespaceMember(this)}accept(e){return e.visitNamespaceMember?e.visitNamespaceMember(this):e.visitChildren(this)}},Zn=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}memberElement(){return this.getRuleContext(0,dc)}get ruleIndex(){return s.RULE_nonFeatureMember}enterRule(e){e.enterNonFeatureMember&&e.enterNonFeatureMember(this)}exitRule(e){e.exitNonFeatureMember&&e.exitNonFeatureMember(this)}accept(e){return e.visitNonFeatureMember?e.visitNonFeatureMember(this):e.visitChildren(this)}},uc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}featureElement(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_namespaceFeatureMember}enterRule(e){e.enterNamespaceFeatureMember&&e.enterNamespaceFeatureMember(this)}exitRule(e){e.exitNamespaceFeatureMember&&e.exitNamespaceFeatureMember(this)}accept(e){return e.visitNamespaceFeatureMember?e.visitNamespaceFeatureMember(this):e.visitChildren(this)}},ur=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}ALIAS(){return this.getToken(s.ALIAS,0)}FOR(){return this.getToken(s.FOR,0)}qualifiedName(){return this.getRuleContext(0,B)}relationshipBody(){return this.getRuleContext(0,Ze)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(xt):this.getRuleContext(e,xt)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_aliasMember}enterRule(e){e.enterAliasMember&&e.enterAliasMember(this)}exitRule(e){e.exitAliasMember&&e.exitAliasMember(this)}accept(e){return e.visitAliasMember?e.visitAliasMember(this):e.visitChildren(this)}},B=class extends u{constructor(e,t){super(e,t)}name(e){return e===void 0?this.getRuleContexts(xt):this.getRuleContext(e,xt)}DOLLAR(){return this.getToken(s.DOLLAR,0)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}get ruleIndex(){return s.RULE_qualifiedName}enterRule(e){e.enterQualifiedName&&e.enterQualifiedName(this)}exitRule(e){e.exitQualifiedName&&e.exitQualifiedName(this)}accept(e){return e.visitQualifiedName?e.visitQualifiedName(this):e.visitChildren(this)}},zt=class extends u{constructor(e,t){super(e,t)}IMPORT(){return this.getToken(s.IMPORT,0)}importDeclaration(){return this.getRuleContext(0,cc)}relationshipBody(){return this.getRuleContext(0,Ze)}visibilityIndicator(){return this.getRuleContext(0,ua)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_importRule}enterRule(e){e.enterImportRule&&e.enterImportRule(this)}exitRule(e){e.exitImportRule&&e.exitImportRule(this)}accept(e){return e.visitImportRule?e.visitImportRule(this):e.visitChildren(this)}},cc=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,es)}namespaceImport(){return this.getRuleContext(0,ca)}get ruleIndex(){return s.RULE_importDeclaration}enterRule(e){e.enterImportDeclaration&&e.enterImportDeclaration(this)}exitRule(e){e.exitImportDeclaration&&e.exitImportDeclaration(this)}accept(e){return e.visitImportDeclaration?e.visitImportDeclaration(this):e.visitChildren(this)}},es=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}COLON_COLON(){return this.getToken(s.COLON_COLON,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}get ruleIndex(){return s.RULE_membershipImport}enterRule(e){e.enterMembershipImport&&e.enterMembershipImport(this)}exitRule(e){e.exitMembershipImport&&e.exitMembershipImport(this)}accept(e){return e.visitMembershipImport?e.visitMembershipImport(this):e.visitChildren(this)}},ca=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}STAR(){return this.getToken(s.STAR,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}filterPackage(){return this.getRuleContext(0,hc)}get ruleIndex(){return s.RULE_namespaceImport}enterRule(e){e.enterNamespaceImport&&e.enterNamespaceImport(this)}exitRule(e){e.exitNamespaceImport&&e.exitNamespaceImport(this)}accept(e){return e.visitNamespaceImport?e.visitNamespaceImport(this):e.visitChildren(this)}},hc=class extends u{constructor(e,t){super(e,t)}filterPackageImportDeclaration(){return this.getRuleContext(0,_d)}filterPackageMember(e){return e===void 0?this.getRuleContexts(ha):this.getRuleContext(e,ha)}filterPackageImport(){return this.getRuleContext(0,Wd)}get ruleIndex(){return s.RULE_filterPackage}enterRule(e){e.enterFilterPackage&&e.enterFilterPackage(this)}exitRule(e){e.exitFilterPackage&&e.exitFilterPackage(this)}accept(e){return e.visitFilterPackage?e.visitFilterPackage(this):e.visitChildren(this)}},ha=class extends u{constructor(e,t){super(e,t)}LBRACK(){return this.getToken(s.LBRACK,0)}ownedExpression(){return this.getRuleContext(0,ae)}RBRACK(){return this.getToken(s.RBRACK,0)}get ruleIndex(){return s.RULE_filterPackageMember}enterRule(e){e.enterFilterPackageMember&&e.enterFilterPackageMember(this)}exitRule(e){e.exitFilterPackageMember&&e.exitFilterPackageMember(this)}accept(e){return e.visitFilterPackageMember?e.visitFilterPackageMember(this):e.visitChildren(this)}},dc=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Bi)}nonFeatureElement(){return this.getRuleContext(0,da)}get ruleIndex(){return s.RULE_memberElement}enterRule(e){e.enterMemberElement&&e.enterMemberElement(this)}exitRule(e){e.exitMemberElement&&e.exitMemberElement(this)}accept(e){return e.visitMemberElement?e.visitMemberElement(this):e.visitChildren(this)}},da=class extends u{constructor(e,t){super(e,t)}dependency(){return this.getRuleContext(0,oa)}namespace(){return this.getRuleContext(0,sc)}type(){return this.getRuleContext(0,pc)}classifier(){return this.getRuleContext(0,Pc)}dataType(){return this.getRuleContext(0,$c)}class(){return this.getRuleContext(0,Yc)}structure(){return this.getRuleContext(0,Jc)}metaclass(){return this.getRuleContext(0,j1)}association(){return this.getRuleContext(0,Xc)}associationStructure(){return this.getRuleContext(0,Zc)}interaction(){return this.getRuleContext(0,U1)}behavior(){return this.getRuleContext(0,c1)}function(){return this.getRuleContext(0,d1)}predicate(){return this.getRuleContext(0,f1)}multiplicity(){return this.getRuleContext(0,B1)}package(){return this.getRuleContext(0,ka)}libraryPackage(){return this.getRuleContext(0,Fa)}specialization(){return this.getRuleContext(0,Rc)}conjugation(){return this.getRuleContext(0,yc)}subclassification(){return this.getRuleContext(0,Ac)}disjoining(){return this.getRuleContext(0,vc)}featureInverting(){return this.getRuleContext(0,zc)}featureTyping(){return this.getRuleContext(0,ji)}subsetting(){return this.getRuleContext(0,qc)}redefinition(){return this.getRuleContext(0,Gc)}typeFeaturing(){return this.getRuleContext(0,Qc)}get ruleIndex(){return s.RULE_nonFeatureElement}enterRule(e){e.enterNonFeatureElement&&e.enterNonFeatureElement(this)}exitRule(e){e.exitNonFeatureElement&&e.exitNonFeatureElement(this)}accept(e){return e.visitNonFeatureElement?e.visitNonFeatureElement(this):e.visitChildren(this)}},ui=class extends u{constructor(e,t){super(e,t)}feature(){return this.getRuleContext(0,Mc)}step(){return this.getRuleContext(0,h1)}expression(){return this.getRuleContext(0,p1)}booleanExpression(){return this.getRuleContext(0,m1)}invariant(){return this.getRuleContext(0,x1)}connector(){return this.getRuleContext(0,e1)}bindingConnector(){return this.getRuleContext(0,a1)}succession(){return this.getRuleContext(0,l1)}flow(){return this.getRuleContext(0,w1)}successionFlow(){return this.getRuleContext(0,D1)}get ruleIndex(){return s.RULE_featureElement}enterRule(e){e.enterFeatureElement&&e.enterFeatureElement(this)}exitRule(e){e.exitFeatureElement&&e.exitFeatureElement(this)}accept(e){return e.visitFeatureElement?e.visitFeatureElement(this):e.visitChildren(this)}},pc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}TYPE(){return this.getToken(s.TYPE,0)}typeDeclaration(){return this.getRuleContext(0,fc)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_type}enterRule(e){e.enterType&&e.enterType(this)}exitRule(e){e.exitType&&e.exitType(this)}accept(e){return e.visitType?e.visitType(this):e.visitChildren(this)}},bt=class extends u{constructor(e,t){super(e,t)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}get ruleIndex(){return s.RULE_typePrefix}enterRule(e){e.enterTypePrefix&&e.enterTypePrefix(this)}exitRule(e){e.exitTypePrefix&&e.exitTypePrefix(this)}accept(e){return e.visitTypePrefix?e.visitTypePrefix(this):e.visitChildren(this)}},fc=class extends u{constructor(e,t){super(e,t)}ALL(){return this.getToken(s.ALL,0)}identification(){return this.getRuleContext(0,ve)}ownedMultiplicity(){return this.getRuleContext(0,_r)}specializationPart(e){return e===void 0?this.getRuleContexts(pa):this.getRuleContext(e,pa)}conjugationPart(e){return e===void 0?this.getRuleContexts(_i):this.getRuleContext(e,_i)}typeRelationshipPart(e){return e===void 0?this.getRuleContexts(ci):this.getRuleContext(e,ci)}get ruleIndex(){return s.RULE_typeDeclaration}enterRule(e){e.enterTypeDeclaration&&e.enterTypeDeclaration(this)}exitRule(e){e.exitTypeDeclaration&&e.exitTypeDeclaration(this)}accept(e){return e.visitTypeDeclaration?e.visitTypeDeclaration(this):e.visitChildren(this)}},pa=class extends u{constructor(e,t){super(e,t)}ownedSpecialization(e){return e===void 0?this.getRuleContexts(fa):this.getRuleContext(e,fa)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_specializationPart}enterRule(e){e.enterSpecializationPart&&e.enterSpecializationPart(this)}exitRule(e){e.exitSpecializationPart&&e.exitSpecializationPart(this)}accept(e){return e.visitSpecializationPart?e.visitSpecializationPart(this):e.visitChildren(this)}},_i=class extends u{constructor(e,t){super(e,t)}ownedConjugation(){return this.getRuleContext(0,Cc)}TILDE(){return this.getToken(s.TILDE,0)}CONJUGATES(){return this.getToken(s.CONJUGATES,0)}get ruleIndex(){return s.RULE_conjugationPart}enterRule(e){e.enterConjugationPart&&e.enterConjugationPart(this)}exitRule(e){e.exitConjugationPart&&e.exitConjugationPart(this)}accept(e){return e.visitConjugationPart?e.visitConjugationPart(this):e.visitChildren(this)}},ci=class extends u{constructor(e,t){super(e,t)}disjoiningPart(){return this.getRuleContext(0,mc)}unioningPart(){return this.getRuleContext(0,xc)}intersectingPart(){return this.getRuleContext(0,bc)}differencingPart(){return this.getRuleContext(0,gc)}get ruleIndex(){return s.RULE_typeRelationshipPart}enterRule(e){e.enterTypeRelationshipPart&&e.enterTypeRelationshipPart(this)}exitRule(e){e.exitTypeRelationshipPart&&e.exitTypeRelationshipPart(this)}accept(e){return e.visitTypeRelationshipPart?e.visitTypeRelationshipPart(this):e.visitChildren(this)}},mc=class extends u{constructor(e,t){super(e,t)}DISJOINT(){return this.getToken(s.DISJOINT,0)}FROM(){return this.getToken(s.FROM,0)}ownedDisjoining(e){return e===void 0?this.getRuleContexts(ma):this.getRuleContext(e,ma)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_disjoiningPart}enterRule(e){e.enterDisjoiningPart&&e.enterDisjoiningPart(this)}exitRule(e){e.exitDisjoiningPart&&e.exitDisjoiningPart(this)}accept(e){return e.visitDisjoiningPart?e.visitDisjoiningPart(this):e.visitChildren(this)}},xc=class extends u{constructor(e,t){super(e,t)}UNIONS(){return this.getToken(s.UNIONS,0)}unioning(e){return e===void 0?this.getRuleContexts(xa):this.getRuleContext(e,xa)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_unioningPart}enterRule(e){e.enterUnioningPart&&e.enterUnioningPart(this)}exitRule(e){e.exitUnioningPart&&e.exitUnioningPart(this)}accept(e){return e.visitUnioningPart?e.visitUnioningPart(this):e.visitChildren(this)}},bc=class extends u{constructor(e,t){super(e,t)}INTERSECTS(){return this.getToken(s.INTERSECTS,0)}intersecting(e){return e===void 0?this.getRuleContexts(ba):this.getRuleContext(e,ba)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_intersectingPart}enterRule(e){e.enterIntersectingPart&&e.enterIntersectingPart(this)}exitRule(e){e.exitIntersectingPart&&e.exitIntersectingPart(this)}accept(e){return e.visitIntersectingPart?e.visitIntersectingPart(this):e.visitChildren(this)}},gc=class extends u{constructor(e,t){super(e,t)}DIFFERENCES(){return this.getToken(s.DIFFERENCES,0)}differencing(e){return e===void 0?this.getRuleContexts(ga):this.getRuleContext(e,ga)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_differencingPart}enterRule(e){e.enterDifferencingPart&&e.enterDifferencingPart(this)}exitRule(e){e.exitDifferencingPart&&e.exitDifferencingPart(this)}accept(e){return e.visitDifferencingPart?e.visitDifferencingPart(this):e.visitChildren(this)}},Be=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}typeBodyElement(e){return e===void 0?this.getRuleContexts(Vi):this.getRuleContext(e,Vi)}get ruleIndex(){return s.RULE_typeBody}enterRule(e){e.enterTypeBody&&e.enterTypeBody(this)}exitRule(e){e.exitTypeBody&&e.exitTypeBody(this)}accept(e){return e.visitTypeBody?e.visitTypeBody(this):e.visitChildren(this)}},Vi=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Zn)}featureMember(){return this.getRuleContext(0,Ec)}aliasMember(){return this.getRuleContext(0,ur)}importRule(){return this.getRuleContext(0,zt)}get ruleIndex(){return s.RULE_typeBodyElement}enterRule(e){e.enterTypeBodyElement&&e.enterTypeBodyElement(this)}exitRule(e){e.exitTypeBodyElement&&e.exitTypeBodyElement(this)}accept(e){return e.visitTypeBodyElement?e.visitTypeBodyElement(this):e.visitChildren(this)}},Rc=class extends u{constructor(e,t){super(e,t)}SUBTYPE(){return this.getToken(s.SUBTYPE,0)}specificType(){return this.getRuleContext(0,ts)}generalType(){return this.getRuleContext(0,hi)}relationshipBody(){return this.getRuleContext(0,Ze)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_specialization}enterRule(e){e.enterSpecialization&&e.enterSpecialization(this)}exitRule(e){e.exitSpecialization&&e.exitSpecialization(this)}accept(e){return e.visitSpecialization?e.visitSpecialization(this):e.visitChildren(this)}},fa=class extends u{constructor(e,t){super(e,t)}generalType(){return this.getRuleContext(0,hi)}get ruleIndex(){return s.RULE_ownedSpecialization}enterRule(e){e.enterOwnedSpecialization&&e.enterOwnedSpecialization(this)}exitRule(e){e.exitOwnedSpecialization&&e.exitOwnedSpecialization(this)}accept(e){return e.visitOwnedSpecialization?e.visitOwnedSpecialization(this):e.visitChildren(this)}},ts=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_specificType}enterRule(e){e.enterSpecificType&&e.enterSpecificType(this)}exitRule(e){e.exitSpecificType&&e.exitSpecificType(this)}accept(e){return e.visitSpecificType?e.visitSpecificType(this):e.visitChildren(this)}},hi=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_generalType}enterRule(e){e.enterGeneralType&&e.enterGeneralType(this)}exitRule(e){e.exitGeneralType&&e.exitGeneralType(this)}accept(e){return e.visitGeneralType?e.visitGeneralType(this):e.visitChildren(this)}},yc=class extends u{constructor(e,t){super(e,t)}CONJUGATE(){return this.getToken(s.CONJUGATE,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}relationshipBody(){return this.getRuleContext(0,Ze)}TILDE(){return this.getToken(s.TILDE,0)}CONJUGATES(){return this.getToken(s.CONJUGATES,0)}CONJUGATION(){return this.getToken(s.CONJUGATION,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_conjugation}enterRule(e){e.enterConjugation&&e.enterConjugation(this)}exitRule(e){e.exitConjugation&&e.exitConjugation(this)}accept(e){return e.visitConjugation?e.visitConjugation(this):e.visitChildren(this)}},Cc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedConjugation}enterRule(e){e.enterOwnedConjugation&&e.enterOwnedConjugation(this)}exitRule(e){e.exitOwnedConjugation&&e.exitOwnedConjugation(this)}accept(e){return e.visitOwnedConjugation?e.visitOwnedConjugation(this):e.visitChildren(this)}},vc=class extends u{constructor(e,t){super(e,t)}DISJOINT(){return this.getToken(s.DISJOINT,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}FROM(){return this.getToken(s.FROM,0)}relationshipBody(){return this.getRuleContext(0,Ze)}DISJOINING(){return this.getToken(s.DISJOINING,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_disjoining}enterRule(e){e.enterDisjoining&&e.enterDisjoining(this)}exitRule(e){e.exitDisjoining&&e.exitDisjoining(this)}accept(e){return e.visitDisjoining?e.visitDisjoining(this):e.visitChildren(this)}},ma=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedDisjoining}enterRule(e){e.enterOwnedDisjoining&&e.enterOwnedDisjoining(this)}exitRule(e){e.exitOwnedDisjoining&&e.exitOwnedDisjoining(this)}accept(e){return e.visitOwnedDisjoining?e.visitOwnedDisjoining(this):e.visitChildren(this)}},xa=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_unioning}enterRule(e){e.enterUnioning&&e.enterUnioning(this)}exitRule(e){e.exitUnioning&&e.exitUnioning(this)}accept(e){return e.visitUnioning?e.visitUnioning(this):e.visitChildren(this)}},ba=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_intersecting}enterRule(e){e.enterIntersecting&&e.enterIntersecting(this)}exitRule(e){e.exitIntersecting&&e.exitIntersecting(this)}accept(e){return e.visitIntersecting?e.visitIntersecting(this):e.visitChildren(this)}},ga=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_differencing}enterRule(e){e.enterDifferencing&&e.enterDifferencing(this)}exitRule(e){e.exitDifferencing&&e.exitDifferencing(this)}accept(e){return e.visitDifferencing?e.visitDifferencing(this):e.visitChildren(this)}},Ec=class extends u{constructor(e,t){super(e,t)}typeFeatureMember(){return this.getRuleContext(0,Lc)}ownedFeatureMember(){return this.getRuleContext(0,Sc)}get ruleIndex(){return s.RULE_featureMember}enterRule(e){e.enterFeatureMember&&e.enterFeatureMember(this)}exitRule(e){e.exitFeatureMember&&e.exitFeatureMember(this)}accept(e){return e.visitFeatureMember?e.visitFeatureMember(this):e.visitChildren(this)}},Lc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}MEMBER(){return this.getToken(s.MEMBER,0)}featureElement(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_typeFeatureMember}enterRule(e){e.enterTypeFeatureMember&&e.enterTypeFeatureMember(this)}exitRule(e){e.exitTypeFeatureMember&&e.exitTypeFeatureMember(this)}accept(e){return e.visitTypeFeatureMember?e.visitTypeFeatureMember(this):e.visitChildren(this)}},Sc=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}featureElement(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_ownedFeatureMember}enterRule(e){e.enterOwnedFeatureMember&&e.enterOwnedFeatureMember(this)}exitRule(e){e.exitOwnedFeatureMember&&e.exitOwnedFeatureMember(this)}accept(e){return e.visitOwnedFeatureMember?e.visitOwnedFeatureMember(this):e.visitChildren(this)}},Pc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}CLASSIFIER(){return this.getToken(s.CLASSIFIER,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_classifier}enterRule(e){e.enterClassifier&&e.enterClassifier(this)}exitRule(e){e.exitClassifier&&e.exitClassifier(this)}accept(e){return e.visitClassifier?e.visitClassifier(this):e.visitChildren(this)}},At=class extends u{constructor(e,t){super(e,t)}ALL(){return this.getToken(s.ALL,0)}identification(){return this.getRuleContext(0,ve)}ownedMultiplicity(){return this.getRuleContext(0,_r)}superclassingPart(){return this.getRuleContext(0,Tc)}conjugationPart(){return this.getRuleContext(0,_i)}typeRelationshipPart(e){return e===void 0?this.getRuleContexts(ci):this.getRuleContext(e,ci)}get ruleIndex(){return s.RULE_classifierDeclaration}enterRule(e){e.enterClassifierDeclaration&&e.enterClassifierDeclaration(this)}exitRule(e){e.exitClassifierDeclaration&&e.exitClassifierDeclaration(this)}accept(e){return e.visitClassifierDeclaration?e.visitClassifierDeclaration(this):e.visitChildren(this)}},Tc=class extends u{constructor(e,t){super(e,t)}ownedSubclassification(e){return e===void 0?this.getRuleContexts(qi):this.getRuleContext(e,qi)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_superclassingPart}enterRule(e){e.enterSuperclassingPart&&e.enterSuperclassingPart(this)}exitRule(e){e.exitSuperclassingPart&&e.exitSuperclassingPart(this)}accept(e){return e.visitSuperclassingPart?e.visitSuperclassingPart(this):e.visitChildren(this)}},Ac=class extends u{constructor(e,t){super(e,t)}SUBCLASSIFIER(){return this.getToken(s.SUBCLASSIFIER,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}relationshipBody(){return this.getRuleContext(0,Ze)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_subclassification}enterRule(e){e.enterSubclassification&&e.enterSubclassification(this)}exitRule(e){e.exitSubclassification&&e.exitSubclassification(this)}accept(e){return e.visitSubclassification?e.visitSubclassification(this):e.visitChildren(this)}},qi=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_ownedSubclassification}enterRule(e){e.enterOwnedSubclassification&&e.enterOwnedSubclassification(this)}exitRule(e){e.exitOwnedSubclassification&&e.exitOwnedSubclassification(this)}accept(e){return e.visitOwnedSubclassification?e.visitOwnedSubclassification(this):e.visitChildren(this)}},Mc=class extends u{constructor(e,t){super(e,t)}typeBody(){return this.getRuleContext(0,Be)}featurePrefix(){return this.getRuleContext(0,Ot)}featureDeclaration(){return this.getRuleContext(0,pt)}valuePart(){return this.getRuleContext(0,Ue)}FEATURE(){return this.getToken(s.FEATURE,0)}prefixMetadataMember(){return this.getRuleContext(0,tt)}endFeaturePrefix(){return this.getRuleContext(0,Ra)}basicFeaturePrefix(){return this.getRuleContext(0,rs)}get ruleIndex(){return s.RULE_feature}enterRule(e){e.enterFeature&&e.enterFeature(this)}exitRule(e){e.exitFeature&&e.exitFeature(this)}accept(e){return e.visitFeature?e.visitFeature(this):e.visitChildren(this)}},Ra=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}CONST(){return this.getToken(s.CONST,0)}get ruleIndex(){return s.RULE_endFeaturePrefix}enterRule(e){e.enterEndFeaturePrefix&&e.enterEndFeaturePrefix(this)}exitRule(e){e.exitEndFeaturePrefix&&e.exitEndFeaturePrefix(this)}accept(e){return e.visitEndFeaturePrefix?e.visitEndFeaturePrefix(this):e.visitChildren(this)}},rs=class extends u{constructor(e,t){super(e,t)}featureDirection(){return this.getRuleContext(0,Ca)}DERIVED(){return this.getToken(s.DERIVED,0)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}COMPOSITE(){return this.getToken(s.COMPOSITE,0)}PORTION(){return this.getToken(s.PORTION,0)}VAR(){return this.getToken(s.VAR,0)}CONST(){return this.getToken(s.CONST,0)}get ruleIndex(){return s.RULE_basicFeaturePrefix}enterRule(e){e.enterBasicFeaturePrefix&&e.enterBasicFeaturePrefix(this)}exitRule(e){e.exitBasicFeaturePrefix&&e.exitBasicFeaturePrefix(this)}accept(e){return e.visitBasicFeaturePrefix?e.visitBasicFeaturePrefix(this):e.visitChildren(this)}},Ot=class extends u{constructor(e,t){super(e,t)}endFeaturePrefix(){return this.getRuleContext(0,Ra)}ownedCrossFeatureMember(){return this.getRuleContext(0,ya)}basicFeaturePrefix(){return this.getRuleContext(0,rs)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}get ruleIndex(){return s.RULE_featurePrefix}enterRule(e){e.enterFeaturePrefix&&e.enterFeaturePrefix(this)}exitRule(e){e.exitFeaturePrefix&&e.exitFeaturePrefix(this)}accept(e){return e.visitFeaturePrefix?e.visitFeaturePrefix(this):e.visitChildren(this)}},ya=class extends u{constructor(e,t){super(e,t)}ownedCrossFeature(){return this.getRuleContext(0,Nc)}get ruleIndex(){return s.RULE_ownedCrossFeatureMember}enterRule(e){e.enterOwnedCrossFeatureMember&&e.enterOwnedCrossFeatureMember(this)}exitRule(e){e.exitOwnedCrossFeatureMember&&e.exitOwnedCrossFeatureMember(this)}accept(e){return e.visitOwnedCrossFeatureMember?e.visitOwnedCrossFeatureMember(this):e.visitChildren(this)}},Nc=class extends u{constructor(e,t){super(e,t)}basicFeaturePrefix(){return this.getRuleContext(0,rs)}featureDeclaration(){return this.getRuleContext(0,pt)}basicUsagePrefix(){return this.getRuleContext(0,xi)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_ownedCrossFeature}enterRule(e){e.enterOwnedCrossFeature&&e.enterOwnedCrossFeature(this)}exitRule(e){e.exitOwnedCrossFeature&&e.exitOwnedCrossFeature(this)}accept(e){return e.visitOwnedCrossFeature?e.visitOwnedCrossFeature(this):e.visitChildren(this)}},Ca=class extends u{constructor(e,t){super(e,t)}IN(){return this.getToken(s.IN,0)}OUT(){return this.getToken(s.OUT,0)}INOUT(){return this.getToken(s.INOUT,0)}get ruleIndex(){return s.RULE_featureDirection}enterRule(e){e.enterFeatureDirection&&e.enterFeatureDirection(this)}exitRule(e){e.exitFeatureDirection&&e.exitFeatureDirection(this)}accept(e){return e.visitFeatureDirection?e.visitFeatureDirection(this):e.visitChildren(this)}},pt=class extends u{constructor(e,t){super(e,t)}featureIdentification(){return this.getRuleContext(0,Uc)}featureSpecializationPart(){return this.getRuleContext(0,ft)}conjugationPart(){return this.getRuleContext(0,_i)}ALL(){return this.getToken(s.ALL,0)}featureRelationshipPart(e){return e===void 0?this.getRuleContexts(va):this.getRuleContext(e,va)}get ruleIndex(){return s.RULE_featureDeclaration}enterRule(e){e.enterFeatureDeclaration&&e.enterFeatureDeclaration(this)}exitRule(e){e.exitFeatureDeclaration&&e.exitFeatureDeclaration(this)}accept(e){return e.visitFeatureDeclaration?e.visitFeatureDeclaration(this):e.visitChildren(this)}},Uc=class extends u{constructor(e,t){super(e,t)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(xt):this.getRuleContext(e,xt)}GT(){return this.getToken(s.GT,0)}get ruleIndex(){return s.RULE_featureIdentification}enterRule(e){e.enterFeatureIdentification&&e.enterFeatureIdentification(this)}exitRule(e){e.exitFeatureIdentification&&e.exitFeatureIdentification(this)}accept(e){return e.visitFeatureIdentification?e.visitFeatureIdentification(this):e.visitChildren(this)}},va=class extends u{constructor(e,t){super(e,t)}typeRelationshipPart(){return this.getRuleContext(0,ci)}chainingPart(){return this.getRuleContext(0,wc)}invertingPart(){return this.getRuleContext(0,Dc)}typeFeaturingPart(){return this.getRuleContext(0,Oc)}get ruleIndex(){return s.RULE_featureRelationshipPart}enterRule(e){e.enterFeatureRelationshipPart&&e.enterFeatureRelationshipPart(this)}exitRule(e){e.exitFeatureRelationshipPart&&e.exitFeatureRelationshipPart(this)}accept(e){return e.visitFeatureRelationshipPart?e.visitFeatureRelationshipPart(this):e.visitChildren(this)}},wc=class extends u{constructor(e,t){super(e,t)}CHAINS(){return this.getToken(s.CHAINS,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_chainingPart}enterRule(e){e.enterChainingPart&&e.enterChainingPart(this)}exitRule(e){e.exitChainingPart&&e.exitChainingPart(this)}accept(e){return e.visitChainingPart?e.visitChainingPart(this):e.visitChildren(this)}},Dc=class extends u{constructor(e,t){super(e,t)}INVERSE(){return this.getToken(s.INVERSE,0)}OF(){return this.getToken(s.OF,0)}ownedFeatureInverting(){return this.getRuleContext(0,Kc)}get ruleIndex(){return s.RULE_invertingPart}enterRule(e){e.enterInvertingPart&&e.enterInvertingPart(this)}exitRule(e){e.exitInvertingPart&&e.exitInvertingPart(this)}accept(e){return e.visitInvertingPart?e.visitInvertingPart(this):e.visitChildren(this)}},Oc=class extends u{constructor(e,t){super(e,t)}FEATURED(){return this.getToken(s.FEATURED,0)}BY(){return this.getToken(s.BY,0)}ownedTypeFeaturing(e){return e===void 0?this.getRuleContexts(Pa):this.getRuleContext(e,Pa)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_typeFeaturingPart}enterRule(e){e.enterTypeFeaturingPart&&e.enterTypeFeaturingPart(this)}exitRule(e){e.exitTypeFeaturingPart&&e.exitTypeFeaturingPart(this)}accept(e){return e.visitTypeFeaturingPart?e.visitTypeFeaturingPart(this):e.visitChildren(this)}},ft=class extends u{constructor(e,t){super(e,t)}featureSpecialization(e){return e===void 0?this.getRuleContexts(cr):this.getRuleContext(e,cr)}multiplicityPart(){return this.getRuleContext(0,Ea)}get ruleIndex(){return s.RULE_featureSpecializationPart}enterRule(e){e.enterFeatureSpecializationPart&&e.enterFeatureSpecializationPart(this)}exitRule(e){e.exitFeatureSpecializationPart&&e.exitFeatureSpecializationPart(this)}accept(e){return e.visitFeatureSpecializationPart?e.visitFeatureSpecializationPart(this):e.visitChildren(this)}},Ea=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,_r)}ORDERED(){return this.getToken(s.ORDERED,0)}NONUNIQUE(){return this.getToken(s.NONUNIQUE,0)}get ruleIndex(){return s.RULE_multiplicityPart}enterRule(e){e.enterMultiplicityPart&&e.enterMultiplicityPart(this)}exitRule(e){e.exitMultiplicityPart&&e.exitMultiplicityPart(this)}accept(e){return e.visitMultiplicityPart?e.visitMultiplicityPart(this):e.visitChildren(this)}},cr=class extends u{constructor(e,t){super(e,t)}typings(){return this.getRuleContext(0,Ic)}subsettings(){return this.getRuleContext(0,Fc)}references(){return this.getRuleContext(0,Hc)}crosses(){return this.getRuleContext(0,Bc)}redefinitions(){return this.getRuleContext(0,_c)}get ruleIndex(){return s.RULE_featureSpecialization}enterRule(e){e.enterFeatureSpecialization&&e.enterFeatureSpecialization(this)}exitRule(e){e.exitFeatureSpecialization&&e.exitFeatureSpecialization(this)}accept(e){return e.visitFeatureSpecialization?e.visitFeatureSpecialization(this):e.visitChildren(this)}},Ic=class extends u{constructor(e,t){super(e,t)}typedBy(){return this.getRuleContext(0,kc)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}featureTyping(e){return e===void 0?this.getRuleContexts(ji):this.getRuleContext(e,ji)}get ruleIndex(){return s.RULE_typings}enterRule(e){e.enterTypings&&e.enterTypings(this)}exitRule(e){e.exitTypings&&e.exitTypings(this)}accept(e){return e.visitTypings?e.visitTypings(this):e.visitChildren(this)}},kc=class extends u{constructor(e,t){super(e,t)}featureTyping(){return this.getRuleContext(0,ji)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}DEFINED(){return this.getToken(s.DEFINED,0)}get ruleIndex(){return s.RULE_typedBy}enterRule(e){e.enterTypedBy&&e.enterTypedBy(this)}exitRule(e){e.exitTypedBy&&e.exitTypedBy(this)}accept(e){return e.visitTypedBy?e.visitTypedBy(this):e.visitChildren(this)}},Fc=class extends u{constructor(e,t){super(e,t)}subsets(){return this.getRuleContext(0,La)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}ownedSubsetting(e){return e===void 0?this.getRuleContexts(is):this.getRuleContext(e,is)}get ruleIndex(){return s.RULE_subsettings}enterRule(e){e.enterSubsettings&&e.enterSubsettings(this)}exitRule(e){e.exitSubsettings&&e.exitSubsettings(this)}accept(e){return e.visitSubsettings?e.visitSubsettings(this):e.visitChildren(this)}},La=class extends u{constructor(e,t){super(e,t)}ownedSubsetting(){return this.getRuleContext(0,is)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SUBSETS(){return this.getToken(s.SUBSETS,0)}get ruleIndex(){return s.RULE_subsets}enterRule(e){e.enterSubsets&&e.enterSubsets(this)}exitRule(e){e.exitSubsets&&e.exitSubsets(this)}accept(e){return e.visitSubsets?e.visitSubsets(this):e.visitChildren(this)}},Hc=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_references}enterRule(e){e.enterReferences&&e.enterReferences(this)}exitRule(e){e.exitReferences&&e.exitReferences(this)}accept(e){return e.visitReferences?e.visitReferences(this):e.visitChildren(this)}},Bc=class extends u{constructor(e,t){super(e,t)}ownedCrossSubsetting(){return this.getRuleContext(0,jc)}FAT_ARROW(){return this.getToken(s.FAT_ARROW,0)}CROSSES(){return this.getToken(s.CROSSES,0)}get ruleIndex(){return s.RULE_crosses}enterRule(e){e.enterCrosses&&e.enterCrosses(this)}exitRule(e){e.exitCrosses&&e.exitCrosses(this)}accept(e){return e.visitCrosses?e.visitCrosses(this):e.visitChildren(this)}},_c=class extends u{constructor(e,t){super(e,t)}redefines(){return this.getRuleContext(0,Vc)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}ownedRedefinition(e){return e===void 0?this.getRuleContexts(di):this.getRuleContext(e,di)}get ruleIndex(){return s.RULE_redefinitions}enterRule(e){e.enterRedefinitions&&e.enterRedefinitions(this)}exitRule(e){e.exitRedefinitions&&e.exitRedefinitions(this)}accept(e){return e.visitRedefinitions?e.visitRedefinitions(this):e.visitChildren(this)}},Vc=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,di)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_redefines}enterRule(e){e.enterRedefines&&e.enterRedefines(this)}exitRule(e){e.exitRedefines&&e.exitRedefines(this)}accept(e){return e.visitRedefines?e.visitRedefines(this):e.visitChildren(this)}},ji=class extends u{constructor(e,t){super(e,t)}TYPING(){return this.getToken(s.TYPING,0)}qualifiedName(){return this.getRuleContext(0,B)}generalType(){return this.getRuleContext(0,hi)}relationshipBody(){return this.getRuleContext(0,Ze)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,ve)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}conjugatedPortTyping(){return this.getRuleContext(0,x0)}get ruleIndex(){return s.RULE_featureTyping}enterRule(e){e.enterFeatureTyping&&e.enterFeatureTyping(this)}exitRule(e){e.exitFeatureTyping&&e.exitFeatureTyping(this)}accept(e){return e.visitFeatureTyping?e.visitFeatureTyping(this):e.visitChildren(this)}},Hr=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureTyping}enterRule(e){e.enterOwnedFeatureTyping&&e.enterOwnedFeatureTyping(this)}exitRule(e){e.exitOwnedFeatureTyping&&e.exitOwnedFeatureTyping(this)}accept(e){return e.visitOwnedFeatureTyping?e.visitOwnedFeatureTyping(this):e.visitChildren(this)}},qc=class extends u{constructor(e,t){super(e,t)}SUBSET(){return this.getToken(s.SUBSET,0)}specificType(){return this.getRuleContext(0,ts)}generalType(){return this.getRuleContext(0,hi)}relationshipBody(){return this.getRuleContext(0,Ze)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SUBSETS(){return this.getToken(s.SUBSETS,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_subsetting}enterRule(e){e.enterSubsetting&&e.enterSubsetting(this)}exitRule(e){e.exitSubsetting&&e.exitSubsetting(this)}accept(e){return e.visitSubsetting?e.visitSubsetting(this):e.visitChildren(this)}},is=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedSubsetting}enterRule(e){e.enterOwnedSubsetting&&e.enterOwnedSubsetting(this)}exitRule(e){e.exitOwnedSubsetting&&e.exitOwnedSubsetting(this)}accept(e){return e.visitOwnedSubsetting?e.visitOwnedSubsetting(this):e.visitChildren(this)}},et=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedReferenceSubsetting}enterRule(e){e.enterOwnedReferenceSubsetting&&e.enterOwnedReferenceSubsetting(this)}exitRule(e){e.exitOwnedReferenceSubsetting&&e.exitOwnedReferenceSubsetting(this)}accept(e){return e.visitOwnedReferenceSubsetting?e.visitOwnedReferenceSubsetting(this):e.visitChildren(this)}},jc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedCrossSubsetting}enterRule(e){e.enterOwnedCrossSubsetting&&e.enterOwnedCrossSubsetting(this)}exitRule(e){e.exitOwnedCrossSubsetting&&e.exitOwnedCrossSubsetting(this)}accept(e){return e.visitOwnedCrossSubsetting?e.visitOwnedCrossSubsetting(this):e.visitChildren(this)}},Gc=class extends u{constructor(e,t){super(e,t)}REDEFINITION(){return this.getToken(s.REDEFINITION,0)}specificType(){return this.getRuleContext(0,ts)}generalType(){return this.getRuleContext(0,hi)}relationshipBody(){return this.getRuleContext(0,Ze)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}SPECIALIZATION(){return this.getToken(s.SPECIALIZATION,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_redefinition}enterRule(e){e.enterRedefinition&&e.enterRedefinition(this)}exitRule(e){e.exitRedefinition&&e.exitRedefinition(this)}accept(e){return e.visitRedefinition?e.visitRedefinition(this):e.visitChildren(this)}},di=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedRedefinition}enterRule(e){e.enterOwnedRedefinition&&e.enterOwnedRedefinition(this)}exitRule(e){e.exitOwnedRedefinition&&e.exitOwnedRedefinition(this)}accept(e){return e.visitOwnedRedefinition?e.visitOwnedRedefinition(this):e.visitChildren(this)}},Wc=class extends u{constructor(e,t){super(e,t)}featureChain(){return this.getRuleContext(0,Sa)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Br):this.getRuleContext(e,Br)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureChain}enterRule(e){e.enterOwnedFeatureChain&&e.enterOwnedFeatureChain(this)}exitRule(e){e.exitOwnedFeatureChain&&e.exitOwnedFeatureChain(this)}accept(e){return e.visitOwnedFeatureChain?e.visitOwnedFeatureChain(this):e.visitChildren(this)}},Sa=class extends u{constructor(e,t){super(e,t)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Br):this.getRuleContext(e,Br)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChain}enterRule(e){e.enterFeatureChain&&e.enterFeatureChain(this)}exitRule(e){e.exitFeatureChain&&e.exitFeatureChain(this)}accept(e){return e.visitFeatureChain?e.visitFeatureChain(this):e.visitChildren(this)}},Br=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_ownedFeatureChaining}enterRule(e){e.enterOwnedFeatureChaining&&e.enterOwnedFeatureChaining(this)}exitRule(e){e.exitOwnedFeatureChaining&&e.exitOwnedFeatureChaining(this)}accept(e){return e.visitOwnedFeatureChaining?e.visitOwnedFeatureChaining(this):e.visitChildren(this)}},zc=class extends u{constructor(e,t){super(e,t)}INVERSE(){return this.getToken(s.INVERSE,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}OF(){return this.getToken(s.OF,0)}relationshipBody(){return this.getRuleContext(0,Ze)}INVERTING(){return this.getToken(s.INVERTING,0)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_featureInverting}enterRule(e){e.enterFeatureInverting&&e.enterFeatureInverting(this)}exitRule(e){e.exitFeatureInverting&&e.exitFeatureInverting(this)}accept(e){return e.visitFeatureInverting?e.visitFeatureInverting(this):e.visitChildren(this)}},Kc=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_ownedFeatureInverting}enterRule(e){e.enterOwnedFeatureInverting&&e.enterOwnedFeatureInverting(this)}exitRule(e){e.exitOwnedFeatureInverting&&e.exitOwnedFeatureInverting(this)}accept(e){return e.visitOwnedFeatureInverting?e.visitOwnedFeatureInverting(this):e.visitChildren(this)}},Qc=class extends u{constructor(e,t){super(e,t)}FEATURING(){return this.getToken(s.FEATURING,0)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}BY(){return this.getToken(s.BY,0)}relationshipBody(){return this.getRuleContext(0,Ze)}OF(){return this.getToken(s.OF,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_typeFeaturing}enterRule(e){e.enterTypeFeaturing&&e.enterTypeFeaturing(this)}exitRule(e){e.exitTypeFeaturing&&e.exitTypeFeaturing(this)}accept(e){return e.visitTypeFeaturing?e.visitTypeFeaturing(this):e.visitChildren(this)}},Pa=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_ownedTypeFeaturing}enterRule(e){e.enterOwnedTypeFeaturing&&e.enterOwnedTypeFeaturing(this)}exitRule(e){e.exitOwnedTypeFeaturing&&e.exitOwnedTypeFeaturing(this)}accept(e){return e.visitOwnedTypeFeaturing?e.visitOwnedTypeFeaturing(this):e.visitChildren(this)}},$c=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}DATATYPE(){return this.getToken(s.DATATYPE,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_dataType}enterRule(e){e.enterDataType&&e.enterDataType(this)}exitRule(e){e.exitDataType&&e.exitDataType(this)}accept(e){return e.visitDataType?e.visitDataType(this):e.visitChildren(this)}},Yc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}CLASS(){return this.getToken(s.CLASS,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_class}enterRule(e){e.enterClass&&e.enterClass(this)}exitRule(e){e.exitClass&&e.exitClass(this)}accept(e){return e.visitClass?e.visitClass(this):e.visitChildren(this)}},Jc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}STRUCT(){return this.getToken(s.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_structure}enterRule(e){e.enterStructure&&e.enterStructure(this)}exitRule(e){e.exitStructure&&e.exitStructure(this)}accept(e){return e.visitStructure?e.visitStructure(this):e.visitChildren(this)}},Xc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}ASSOC(){return this.getToken(s.ASSOC,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_association}enterRule(e){e.enterAssociation&&e.enterAssociation(this)}exitRule(e){e.exitAssociation&&e.exitAssociation(this)}accept(e){return e.visitAssociation?e.visitAssociation(this):e.visitChildren(this)}},Zc=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}ASSOC(){return this.getToken(s.ASSOC,0)}STRUCT(){return this.getToken(s.STRUCT,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_associationStructure}enterRule(e){e.enterAssociationStructure&&e.enterAssociationStructure(this)}exitRule(e){e.exitAssociationStructure&&e.exitAssociationStructure(this)}accept(e){return e.visitAssociationStructure?e.visitAssociationStructure(this):e.visitChildren(this)}},e1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}CONNECTOR(){return this.getToken(s.CONNECTOR,0)}typeBody(){return this.getRuleContext(0,Be)}connectorDeclaration(){return this.getRuleContext(0,t1)}featureDeclaration(){return this.getRuleContext(0,pt)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_connector}enterRule(e){e.enterConnector&&e.enterConnector(this)}exitRule(e){e.exitConnector&&e.exitConnector(this)}accept(e){return e.visitConnector?e.visitConnector(this):e.visitChildren(this)}},t1=class extends u{constructor(e,t){super(e,t)}binaryConnectorDeclaration(){return this.getRuleContext(0,r1)}naryConnectorDeclaration(){return this.getRuleContext(0,i1)}get ruleIndex(){return s.RULE_connectorDeclaration}enterRule(e){e.enterConnectorDeclaration&&e.enterConnectorDeclaration(this)}exitRule(e){e.exitConnectorDeclaration&&e.exitConnectorDeclaration(this)}accept(e){return e.visitConnectorDeclaration?e.visitConnectorDeclaration(this):e.visitChildren(this)}},r1=class extends u{constructor(e,t){super(e,t)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}TO(){return this.getToken(s.TO,0)}FROM(){return this.getToken(s.FROM,0)}ALL(){return this.getToken(s.ALL,0)}featureDeclaration(){return this.getRuleContext(0,pt)}get ruleIndex(){return s.RULE_binaryConnectorDeclaration}enterRule(e){e.enterBinaryConnectorDeclaration&&e.enterBinaryConnectorDeclaration(this)}exitRule(e){e.exitBinaryConnectorDeclaration&&e.exitBinaryConnectorDeclaration(this)}accept(e){return e.visitBinaryConnectorDeclaration?e.visitBinaryConnectorDeclaration(this):e.visitChildren(this)}},i1=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}featureDeclaration(){return this.getRuleContext(0,pt)}get ruleIndex(){return s.RULE_naryConnectorDeclaration}enterRule(e){e.enterNaryConnectorDeclaration&&e.enterNaryConnectorDeclaration(this)}exitRule(e){e.exitNaryConnectorDeclaration&&e.exitNaryConnectorDeclaration(this)}accept(e){return e.visitNaryConnectorDeclaration?e.visitNaryConnectorDeclaration(this):e.visitChildren(this)}},Ve=class extends u{constructor(e,t){super(e,t)}connectorEnd(){return this.getRuleContext(0,n1)}get ruleIndex(){return s.RULE_connectorEndMember}enterRule(e){e.enterConnectorEndMember&&e.enterConnectorEndMember(this)}exitRule(e){e.exitConnectorEndMember&&e.exitConnectorEndMember(this)}accept(e){return e.visitConnectorEndMember?e.visitConnectorEndMember(this):e.visitChildren(this)}},n1=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,Ta)}name(){return this.getRuleContext(0,xt)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_connectorEnd}enterRule(e){e.enterConnectorEnd&&e.enterConnectorEnd(this)}exitRule(e){e.exitConnectorEnd&&e.exitConnectorEnd(this)}accept(e){return e.visitConnectorEnd?e.visitConnectorEnd(this):e.visitChildren(this)}},Ta=class extends u{constructor(e,t){super(e,t)}ownedCrossMultiplicity(){return this.getRuleContext(0,s1)}get ruleIndex(){return s.RULE_ownedCrossMultiplicityMember}enterRule(e){e.enterOwnedCrossMultiplicityMember&&e.enterOwnedCrossMultiplicityMember(this)}exitRule(e){e.exitOwnedCrossMultiplicityMember&&e.exitOwnedCrossMultiplicityMember(this)}accept(e){return e.visitOwnedCrossMultiplicityMember?e.visitOwnedCrossMultiplicityMember(this):e.visitChildren(this)}},s1=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,_r)}get ruleIndex(){return s.RULE_ownedCrossMultiplicity}enterRule(e){e.enterOwnedCrossMultiplicity&&e.enterOwnedCrossMultiplicity(this)}exitRule(e){e.exitOwnedCrossMultiplicity&&e.exitOwnedCrossMultiplicity(this)}accept(e){return e.visitOwnedCrossMultiplicity?e.visitOwnedCrossMultiplicity(this):e.visitChildren(this)}},a1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}BINDING(){return this.getToken(s.BINDING,0)}bindingConnectorDeclaration(){return this.getRuleContext(0,o1)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_bindingConnector}enterRule(e){e.enterBindingConnector&&e.enterBindingConnector(this)}exitRule(e){e.exitBindingConnector&&e.exitBindingConnector(this)}accept(e){return e.visitBindingConnector?e.visitBindingConnector(this):e.visitChildren(this)}},o1=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,pt)}OF(){return this.getToken(s.OF,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}EQ(){return this.getToken(s.EQ,0)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_bindingConnectorDeclaration}enterRule(e){e.enterBindingConnectorDeclaration&&e.enterBindingConnectorDeclaration(this)}exitRule(e){e.exitBindingConnectorDeclaration&&e.exitBindingConnectorDeclaration(this)}accept(e){return e.visitBindingConnectorDeclaration?e.visitBindingConnectorDeclaration(this):e.visitChildren(this)}},l1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}successionDeclaration(){return this.getRuleContext(0,u1)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_succession}enterRule(e){e.enterSuccession&&e.enterSuccession(this)}exitRule(e){e.exitSuccession&&e.exitSuccession(this)}accept(e){return e.visitSuccession?e.visitSuccession(this):e.visitChildren(this)}},u1=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,pt)}FIRST(){return this.getToken(s.FIRST,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}THEN(){return this.getToken(s.THEN,0)}ALL(){return this.getToken(s.ALL,0)}get ruleIndex(){return s.RULE_successionDeclaration}enterRule(e){e.enterSuccessionDeclaration&&e.enterSuccessionDeclaration(this)}exitRule(e){e.exitSuccessionDeclaration&&e.exitSuccessionDeclaration(this)}accept(e){return e.visitSuccessionDeclaration?e.visitSuccessionDeclaration(this):e.visitChildren(this)}},c1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}BEHAVIOR(){return this.getToken(s.BEHAVIOR,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_behavior}enterRule(e){e.enterBehavior&&e.enterBehavior(this)}exitRule(e){e.exitBehavior&&e.exitBehavior(this)}accept(e){return e.visitBehavior?e.visitBehavior(this):e.visitChildren(this)}},h1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}STEP(){return this.getToken(s.STEP,0)}featureDeclaration(){return this.getRuleContext(0,pt)}typeBody(){return this.getRuleContext(0,Be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_step}enterRule(e){e.enterStep&&e.enterStep(this)}exitRule(e){e.exitStep&&e.exitStep(this)}accept(e){return e.visitStep?e.visitStep(this):e.visitChildren(this)}},d1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}FUNCTION(){return this.getToken(s.FUNCTION,0)}classifierDeclaration(){return this.getRuleContext(0,At)}functionBody(){return this.getRuleContext(0,pi)}get ruleIndex(){return s.RULE_function}enterRule(e){e.enterFunction&&e.enterFunction(this)}exitRule(e){e.exitFunction&&e.exitFunction(this)}accept(e){return e.visitFunction?e.visitFunction(this):e.visitChildren(this)}},pi=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,ns)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_functionBody}enterRule(e){e.enterFunctionBody&&e.enterFunctionBody(this)}exitRule(e){e.exitFunctionBody&&e.exitFunctionBody(this)}accept(e){return e.visitFunctionBody?e.visitFunctionBody(this):e.visitChildren(this)}},ns=class extends u{constructor(e,t){super(e,t)}typeBodyElement(e){return e===void 0?this.getRuleContexts(Vi):this.getRuleContext(e,Vi)}returnFeatureMember(e){return e===void 0?this.getRuleContexts(Aa):this.getRuleContext(e,Aa)}resultExpressionMember(){return this.getRuleContext(0,ss)}get ruleIndex(){return s.RULE_functionBodyPart}enterRule(e){e.enterFunctionBodyPart&&e.enterFunctionBodyPart(this)}exitRule(e){e.exitFunctionBodyPart&&e.exitFunctionBodyPart(this)}accept(e){return e.visitFunctionBodyPart?e.visitFunctionBodyPart(this):e.visitChildren(this)}},Aa=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}RETURN(){return this.getToken(s.RETURN,0)}featureElement(){return this.getRuleContext(0,ui)}get ruleIndex(){return s.RULE_returnFeatureMember}enterRule(e){e.enterReturnFeatureMember&&e.enterReturnFeatureMember(this)}exitRule(e){e.exitReturnFeatureMember&&e.exitReturnFeatureMember(this)}accept(e){return e.visitReturnFeatureMember?e.visitReturnFeatureMember(this):e.visitChildren(this)}},ss=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_resultExpressionMember}enterRule(e){e.enterResultExpressionMember&&e.enterResultExpressionMember(this)}exitRule(e){e.exitResultExpressionMember&&e.exitResultExpressionMember(this)}accept(e){return e.visitResultExpressionMember?e.visitResultExpressionMember(this):e.visitChildren(this)}},p1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}EXPR(){return this.getToken(s.EXPR,0)}featureDeclaration(){return this.getRuleContext(0,pt)}functionBody(){return this.getRuleContext(0,pi)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_expression}enterRule(e){e.enterExpression&&e.enterExpression(this)}exitRule(e){e.exitExpression&&e.exitExpression(this)}accept(e){return e.visitExpression?e.visitExpression(this):e.visitChildren(this)}},f1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}PREDICATE(){return this.getToken(s.PREDICATE,0)}classifierDeclaration(){return this.getRuleContext(0,At)}functionBody(){return this.getRuleContext(0,pi)}get ruleIndex(){return s.RULE_predicate}enterRule(e){e.enterPredicate&&e.enterPredicate(this)}exitRule(e){e.exitPredicate&&e.exitPredicate(this)}accept(e){return e.visitPredicate?e.visitPredicate(this):e.visitChildren(this)}},m1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}BOOL(){return this.getToken(s.BOOL,0)}featureDeclaration(){return this.getRuleContext(0,pt)}functionBody(){return this.getRuleContext(0,pi)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_booleanExpression}enterRule(e){e.enterBooleanExpression&&e.enterBooleanExpression(this)}exitRule(e){e.exitBooleanExpression&&e.exitBooleanExpression(this)}accept(e){return e.visitBooleanExpression?e.visitBooleanExpression(this):e.visitChildren(this)}},x1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}INV(){return this.getToken(s.INV,0)}featureDeclaration(){return this.getRuleContext(0,pt)}functionBody(){return this.getRuleContext(0,pi)}valuePart(){return this.getRuleContext(0,Ue)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_invariant}enterRule(e){e.enterInvariant&&e.enterInvariant(this)}exitRule(e){e.exitInvariant&&e.exitInvariant(this)}accept(e){return e.visitInvariant?e.visitInvariant(this):e.visitChildren(this)}},b1=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_ownedExpressionMember}enterRule(e){e.enterOwnedExpressionMember&&e.enterOwnedExpressionMember(this)}exitRule(e){e.exitOwnedExpressionMember&&e.exitOwnedExpressionMember(this)}accept(e){return e.visitOwnedExpressionMember?e.visitOwnedExpressionMember(this):e.visitChildren(this)}},V3=class extends u{constructor(e,t){super(e,t)}elementReferenceMember(){return this.getRuleContext(0,A1)}get ruleIndex(){return s.RULE_metadataReference}enterRule(e){e.enterMetadataReference&&e.enterMetadataReference(this)}exitRule(e){e.exitMetadataReference&&e.exitMetadataReference(this)}accept(e){return e.visitMetadataReference?e.visitMetadataReference(this):e.visitChildren(this)}},q3=class extends u{constructor(e,t){super(e,t)}typeReference(){return this.getRuleContext(0,Qn)}get ruleIndex(){return s.RULE_typeReferenceMember}enterRule(e){e.enterTypeReferenceMember&&e.enterTypeReferenceMember(this)}exitRule(e){e.exitTypeReferenceMember&&e.exitTypeReferenceMember(this)}accept(e){return e.visitTypeReferenceMember?e.visitTypeReferenceMember(this):e.visitChildren(this)}},j3=class extends u{constructor(e,t){super(e,t)}typeReference(){return this.getRuleContext(0,Qn)}get ruleIndex(){return s.RULE_typeResultMember}enterRule(e){e.enterTypeResultMember&&e.enterTypeResultMember(this)}exitRule(e){e.exitTypeResultMember&&e.exitTypeResultMember(this)}accept(e){return e.visitTypeResultMember?e.visitTypeResultMember(this):e.visitChildren(this)}},g1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_referenceTyping}enterRule(e){e.enterReferenceTyping&&e.enterReferenceTyping(this)}exitRule(e){e.exitReferenceTyping&&e.exitReferenceTyping(this)}accept(e){return e.visitReferenceTyping?e.visitReferenceTyping(this):e.visitChildren(this)}},G3=class extends u{constructor(e,t){super(e,t)}emptyFeature_(){return this.getRuleContext(0,qo)}get ruleIndex(){return s.RULE_emptyResultMember}enterRule(e){e.enterEmptyResultMember&&e.enterEmptyResultMember(this)}exitRule(e){e.exitEmptyResultMember&&e.exitEmptyResultMember(this)}accept(e){return e.visitEmptyResultMember?e.visitEmptyResultMember(this):e.visitChildren(this)}},W3=class extends u{constructor(e,t){super(e,t)}ownedExpressionMember(){return this.getRuleContext(0,b1)}COMMA(){return this.getToken(s.COMMA,0)}sequenceExpressionListMember(){return this.getRuleContext(0,R1)}get ruleIndex(){return s.RULE_sequenceOperatorExpression}enterRule(e){e.enterSequenceOperatorExpression&&e.enterSequenceOperatorExpression(this)}exitRule(e){e.exitSequenceOperatorExpression&&e.exitSequenceOperatorExpression(this)}accept(e){return e.visitSequenceOperatorExpression?e.visitSequenceOperatorExpression(this):e.visitChildren(this)}},R1=class extends u{constructor(e,t){super(e,t)}sequenceExpressionList(){return this.getRuleContext(0,$n)}get ruleIndex(){return s.RULE_sequenceExpressionListMember}enterRule(e){e.enterSequenceExpressionListMember&&e.enterSequenceExpressionListMember(this)}exitRule(e){e.exitSequenceExpressionListMember&&e.exitSequenceExpressionListMember(this)}accept(e){return e.visitSequenceExpressionListMember?e.visitSequenceExpressionListMember(this):e.visitChildren(this)}},z3=class extends u{constructor(e,t){super(e,t)}bodyArgument(){return this.getRuleContext(0,y1)}get ruleIndex(){return s.RULE_bodyArgumentMember}enterRule(e){e.enterBodyArgumentMember&&e.enterBodyArgumentMember(this)}exitRule(e){e.exitBodyArgumentMember&&e.exitBodyArgumentMember(this)}accept(e){return e.visitBodyArgumentMember?e.visitBodyArgumentMember(this):e.visitChildren(this)}},y1=class extends u{constructor(e,t){super(e,t)}bodyArgumentValue(){return this.getRuleContext(0,C1)}get ruleIndex(){return s.RULE_bodyArgument}enterRule(e){e.enterBodyArgument&&e.enterBodyArgument(this)}exitRule(e){e.exitBodyArgument&&e.exitBodyArgument(this)}accept(e){return e.visitBodyArgument?e.visitBodyArgument(this):e.visitChildren(this)}},C1=class extends u{constructor(e,t){super(e,t)}bodyExpression(){return this.getRuleContext(0,Yn)}get ruleIndex(){return s.RULE_bodyArgumentValue}enterRule(e){e.enterBodyArgumentValue&&e.enterBodyArgumentValue(this)}exitRule(e){e.exitBodyArgumentValue&&e.exitBodyArgumentValue(this)}accept(e){return e.visitBodyArgumentValue?e.visitBodyArgumentValue(this):e.visitChildren(this)}},K3=class extends u{constructor(e,t){super(e,t)}functionReferenceArgument(){return this.getRuleContext(0,v1)}get ruleIndex(){return s.RULE_functionReferenceArgumentMember}enterRule(e){e.enterFunctionReferenceArgumentMember&&e.enterFunctionReferenceArgumentMember(this)}exitRule(e){e.exitFunctionReferenceArgumentMember&&e.exitFunctionReferenceArgumentMember(this)}accept(e){return e.visitFunctionReferenceArgumentMember?e.visitFunctionReferenceArgumentMember(this):e.visitChildren(this)}},v1=class extends u{constructor(e,t){super(e,t)}functionReferenceArgumentValue(){return this.getRuleContext(0,E1)}get ruleIndex(){return s.RULE_functionReferenceArgument}enterRule(e){e.enterFunctionReferenceArgument&&e.enterFunctionReferenceArgument(this)}exitRule(e){e.exitFunctionReferenceArgument&&e.exitFunctionReferenceArgument(this)}accept(e){return e.visitFunctionReferenceArgument?e.visitFunctionReferenceArgument(this):e.visitChildren(this)}},E1=class extends u{constructor(e,t){super(e,t)}functionReferenceExpression(){return this.getRuleContext(0,L1)}get ruleIndex(){return s.RULE_functionReferenceArgumentValue}enterRule(e){e.enterFunctionReferenceArgumentValue&&e.enterFunctionReferenceArgumentValue(this)}exitRule(e){e.exitFunctionReferenceArgumentValue&&e.exitFunctionReferenceArgumentValue(this)}accept(e){return e.visitFunctionReferenceArgumentValue?e.visitFunctionReferenceArgumentValue(this):e.visitChildren(this)}},L1=class extends u{constructor(e,t){super(e,t)}functionReferenceMember(){return this.getRuleContext(0,S1)}get ruleIndex(){return s.RULE_functionReferenceExpression}enterRule(e){e.enterFunctionReferenceExpression&&e.enterFunctionReferenceExpression(this)}exitRule(e){e.exitFunctionReferenceExpression&&e.exitFunctionReferenceExpression(this)}accept(e){return e.visitFunctionReferenceExpression?e.visitFunctionReferenceExpression(this):e.visitChildren(this)}},S1=class extends u{constructor(e,t){super(e,t)}functionReference(){return this.getRuleContext(0,P1)}get ruleIndex(){return s.RULE_functionReferenceMember}enterRule(e){e.enterFunctionReferenceMember&&e.enterFunctionReferenceMember(this)}exitRule(e){e.exitFunctionReferenceMember&&e.exitFunctionReferenceMember(this)}accept(e){return e.visitFunctionReferenceMember?e.visitFunctionReferenceMember(this):e.visitChildren(this)}},P1=class extends u{constructor(e,t){super(e,t)}referenceTyping(){return this.getRuleContext(0,g1)}get ruleIndex(){return s.RULE_functionReference}enterRule(e){e.enterFunctionReference&&e.enterFunctionReference(this)}exitRule(e){e.exitFunctionReference&&e.exitFunctionReference(this)}accept(e){return e.visitFunctionReference?e.visitFunctionReference(this):e.visitChildren(this)}},Gi=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChainMember}enterRule(e){e.enterFeatureChainMember&&e.enterFeatureChainMember(this)}exitRule(e){e.exitFeatureChainMember&&e.exitFeatureChainMember(this)}accept(e){return e.visitFeatureChainMember?e.visitFeatureChainMember(this):e.visitChildren(this)}},Q3=class extends u{constructor(e,t){super(e,t)}featureChain(){return this.getRuleContext(0,Sa)}ownedFeatureChain(){return this.getRuleContext(0,Wc)}get ruleIndex(){return s.RULE_ownedFeatureChainMember}enterRule(e){e.enterOwnedFeatureChainMember&&e.enterOwnedFeatureChainMember(this)}exitRule(e){e.exitOwnedFeatureChainMember&&e.exitOwnedFeatureChainMember(this)}accept(e){return e.visitOwnedFeatureChainMember?e.visitOwnedFeatureChainMember(this):e.visitChildren(this)}},$3=class extends u{constructor(e,t){super(e,t)}featureReference(){return this.getRuleContext(0,T1)}get ruleIndex(){return s.RULE_featureReferenceMember}enterRule(e){e.enterFeatureReferenceMember&&e.enterFeatureReferenceMember(this)}exitRule(e){e.exitFeatureReferenceMember&&e.exitFeatureReferenceMember(this)}accept(e){return e.visitFeatureReferenceMember?e.visitFeatureReferenceMember(this):e.visitChildren(this)}},T1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_featureReference}enterRule(e){e.enterFeatureReference&&e.enterFeatureReference(this)}exitRule(e){e.exitFeatureReference&&e.exitFeatureReference(this)}accept(e){return e.visitFeatureReference?e.visitFeatureReference(this):e.visitChildren(this)}},A1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_elementReferenceMember}enterRule(e){e.enterElementReferenceMember&&e.enterElementReferenceMember(this)}exitRule(e){e.exitElementReferenceMember&&e.exitElementReferenceMember(this)}accept(e){return e.visitElementReferenceMember?e.visitElementReferenceMember(this):e.visitChildren(this)}},Y3=class extends u{constructor(e,t){super(e,t)}constructorResult(){return this.getRuleContext(0,M1)}get ruleIndex(){return s.RULE_constructorResultMember}enterRule(e){e.enterConstructorResultMember&&e.enterConstructorResultMember(this)}exitRule(e){e.exitConstructorResultMember&&e.exitConstructorResultMember(this)}accept(e){return e.visitConstructorResultMember?e.visitConstructorResultMember(this):e.visitChildren(this)}},M1=class extends u{constructor(e,t){super(e,t)}argumentList(){return this.getRuleContext(0,li)}get ruleIndex(){return s.RULE_constructorResult}enterRule(e){e.enterConstructorResult&&e.enterConstructorResult(this)}exitRule(e){e.exitConstructorResult&&e.exitConstructorResult(this)}accept(e){return e.visitConstructorResult?e.visitConstructorResult(this):e.visitChildren(this)}},J3=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_instantiatedTypeMember}enterRule(e){e.enterInstantiatedTypeMember&&e.enterInstantiatedTypeMember(this)}exitRule(e){e.exitInstantiatedTypeMember&&e.exitInstantiatedTypeMember(this)}accept(e){return e.visitInstantiatedTypeMember?e.visitInstantiatedTypeMember(this):e.visitChildren(this)}},X3=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_instantiatedTypeReference}enterRule(e){e.enterInstantiatedTypeReference&&e.enterInstantiatedTypeReference(this)}exitRule(e){e.exitInstantiatedTypeReference&&e.exitInstantiatedTypeReference(this)}accept(e){return e.visitInstantiatedTypeReference?e.visitInstantiatedTypeReference(this):e.visitChildren(this)}},Z3=class extends u{constructor(e,t){super(e,t)}namedArgument(){return this.getRuleContext(0,Jn)}get ruleIndex(){return s.RULE_namedArgumentMember}enterRule(e){e.enterNamedArgumentMember&&e.enterNamedArgumentMember(this)}exitRule(e){e.exitNamedArgumentMember&&e.exitNamedArgumentMember(this)}accept(e){return e.visitNamedArgumentMember?e.visitNamedArgumentMember(this):e.visitChildren(this)}},e4=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_parameterRedefinition}enterRule(e){e.enterParameterRedefinition&&e.enterParameterRedefinition(this)}exitRule(e){e.exitParameterRedefinition&&e.exitParameterRedefinition(this)}accept(e){return e.visitParameterRedefinition?e.visitParameterRedefinition(this):e.visitChildren(this)}},t4=class extends u{constructor(e,t){super(e,t)}expressionBody(){return this.getRuleContext(0,N1)}get ruleIndex(){return s.RULE_expressionBodyMember}enterRule(e){e.enterExpressionBodyMember&&e.enterExpressionBodyMember(this)}exitRule(e){e.exitExpressionBodyMember&&e.exitExpressionBodyMember(this)}accept(e){return e.visitExpressionBodyMember?e.visitExpressionBodyMember(this):e.visitChildren(this)}},N1=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}functionBodyPart(){return this.getRuleContext(0,ns)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_expressionBody}enterRule(e){e.enterExpressionBody&&e.enterExpressionBody(this)}exitRule(e){e.exitExpressionBody&&e.exitExpressionBody(this)}accept(e){return e.visitExpressionBody?e.visitExpressionBody(this):e.visitChildren(this)}},r4=class extends u{constructor(e,t){super(e,t)}TRUE(){return this.getToken(s.TRUE,0)}FALSE(){return this.getToken(s.FALSE,0)}get ruleIndex(){return s.RULE_booleanValue}enterRule(e){e.enterBooleanValue&&e.enterBooleanValue(this)}exitRule(e){e.exitBooleanValue&&e.exitBooleanValue(this)}accept(e){return e.visitBooleanValue?e.visitBooleanValue(this):e.visitChildren(this)}},i4=class extends u{constructor(e,t){super(e,t)}DOT(){return this.getToken(s.DOT,0)}INTEGER(e){return e===void 0?this.getTokens(s.INTEGER):this.getToken(s.INTEGER,e)}REAL(){return this.getToken(s.REAL,0)}get ruleIndex(){return s.RULE_realValue}enterRule(e){e.enterRealValue&&e.enterRealValue(this)}exitRule(e){e.exitRealValue&&e.exitRealValue(this)}accept(e){return e.visitRealValue?e.visitRealValue(this):e.visitChildren(this)}},U1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}INTERACTION(){return this.getToken(s.INTERACTION,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_interaction}enterRule(e){e.enterInteraction&&e.enterInteraction(this)}exitRule(e){e.exitInteraction&&e.exitInteraction(this)}accept(e){return e.visitInteraction?e.visitInteraction(this):e.visitChildren(this)}},w1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Wi)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_flow}enterRule(e){e.enterFlow&&e.enterFlow(this)}exitRule(e){e.exitFlow&&e.exitFlow(this)}accept(e){return e.visitFlow?e.visitFlow(this):e.visitChildren(this)}},D1=class extends u{constructor(e,t){super(e,t)}featurePrefix(){return this.getRuleContext(0,Ot)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Wi)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_successionFlow}enterRule(e){e.enterSuccessionFlow&&e.enterSuccessionFlow(this)}exitRule(e){e.exitSuccessionFlow&&e.exitSuccessionFlow(this)}accept(e){return e.visitSuccessionFlow?e.visitSuccessionFlow(this):e.visitChildren(this)}},Wi=class extends u{constructor(e,t){super(e,t)}featureDeclaration(){return this.getRuleContext(0,pt)}valuePart(){return this.getRuleContext(0,Ue)}OF(){return this.getToken(s.OF,0)}payloadFeatureMember(){return this.getRuleContext(0,O1)}FROM(){return this.getToken(s.FROM,0)}flowEndMember(e){return e===void 0?this.getRuleContexts(Na):this.getRuleContext(e,Na)}TO(){return this.getToken(s.TO,0)}ALL(){return this.getToken(s.ALL,0)}usageDeclaration(){return this.getRuleContext(0,be)}flowPayloadFeatureMember(){return this.getRuleContext(0,mo)}get ruleIndex(){return s.RULE_flowDeclaration}enterRule(e){e.enterFlowDeclaration&&e.enterFlowDeclaration(this)}exitRule(e){e.exitFlowDeclaration&&e.exitFlowDeclaration(this)}accept(e){return e.visitFlowDeclaration?e.visitFlowDeclaration(this):e.visitChildren(this)}},O1=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,as)}get ruleIndex(){return s.RULE_payloadFeatureMember}enterRule(e){e.enterPayloadFeatureMember&&e.enterPayloadFeatureMember(this)}exitRule(e){e.exitPayloadFeatureMember&&e.exitPayloadFeatureMember(this)}accept(e){return e.visitPayloadFeatureMember?e.visitPayloadFeatureMember(this):e.visitChildren(this)}},as=class extends u{constructor(e,t){super(e,t)}valuePart(){return this.getRuleContext(0,Ue)}identification(){return this.getRuleContext(0,ve)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,Ma)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}ownedMultiplicity(){return this.getRuleContext(0,_r)}get ruleIndex(){return s.RULE_payloadFeature}enterRule(e){e.enterPayloadFeature&&e.enterPayloadFeature(this)}exitRule(e){e.exitPayloadFeature&&e.exitPayloadFeature(this)}accept(e){return e.visitPayloadFeature?e.visitPayloadFeature(this):e.visitChildren(this)}},Ma=class extends u{constructor(e,t){super(e,t)}featureSpecialization(e){return e===void 0?this.getRuleContexts(cr):this.getRuleContext(e,cr)}multiplicityPart(){return this.getRuleContext(0,Ea)}get ruleIndex(){return s.RULE_payloadFeatureSpecializationPart}enterRule(e){e.enterPayloadFeatureSpecializationPart&&e.enterPayloadFeatureSpecializationPart(this)}exitRule(e){e.exitPayloadFeatureSpecializationPart&&e.exitPayloadFeatureSpecializationPart(this)}accept(e){return e.visitPayloadFeatureSpecializationPart?e.visitPayloadFeatureSpecializationPart(this):e.visitChildren(this)}},Na=class extends u{constructor(e,t){super(e,t)}flowEnd(){return this.getRuleContext(0,I1)}get ruleIndex(){return s.RULE_flowEndMember}enterRule(e){e.enterFlowEndMember&&e.enterFlowEndMember(this)}exitRule(e){e.exitFlowEndMember&&e.exitFlowEndMember(this)}accept(e){return e.visitFlowEndMember?e.visitFlowEndMember(this):e.visitChildren(this)}},I1=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_flowEnd}enterRule(e){e.enterFlowEnd&&e.enterFlowEnd(this)}exitRule(e){e.exitFlowEnd&&e.exitFlowEnd(this)}accept(e){return e.visitFlowEnd?e.visitFlowEnd(this):e.visitChildren(this)}},n4=class extends u{constructor(e,t){super(e,t)}flowFeature(){return this.getRuleContext(0,k1)}get ruleIndex(){return s.RULE_flowFeatureMember}enterRule(e){e.enterFlowFeatureMember&&e.enterFlowFeatureMember(this)}exitRule(e){e.exitFlowFeatureMember&&e.exitFlowFeatureMember(this)}accept(e){return e.visitFlowFeatureMember?e.visitFlowFeatureMember(this):e.visitChildren(this)}},k1=class extends u{constructor(e,t){super(e,t)}flowFeatureRedefinition(){return this.getRuleContext(0,F1)}get ruleIndex(){return s.RULE_flowFeature}enterRule(e){e.enterFlowFeature&&e.enterFlowFeature(this)}exitRule(e){e.exitFlowFeature&&e.exitFlowFeature(this)}accept(e){return e.visitFlowFeature?e.visitFlowFeature(this):e.visitChildren(this)}},F1=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_flowFeatureRedefinition}enterRule(e){e.enterFlowFeatureRedefinition&&e.enterFlowFeatureRedefinition(this)}exitRule(e){e.exitFlowFeatureRedefinition&&e.exitFlowFeatureRedefinition(this)}accept(e){return e.visitFlowFeatureRedefinition?e.visitFlowFeatureRedefinition(this):e.visitChildren(this)}},Ue=class extends u{constructor(e,t){super(e,t)}featureValue(){return this.getRuleContext(0,H1)}get ruleIndex(){return s.RULE_valuePart}enterRule(e){e.enterValuePart&&e.enterValuePart(this)}exitRule(e){e.exitValuePart&&e.exitValuePart(this)}accept(e){return e.visitValuePart?e.visitValuePart(this):e.visitChildren(this)}},H1=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}EQ(){return this.getToken(s.EQ,0)}COLON_EQ(){return this.getToken(s.COLON_EQ,0)}DEFAULT(){return this.getToken(s.DEFAULT,0)}get ruleIndex(){return s.RULE_featureValue}enterRule(e){e.enterFeatureValue&&e.enterFeatureValue(this)}exitRule(e){e.exitFeatureValue&&e.exitFeatureValue(this)}accept(e){return e.visitFeatureValue?e.visitFeatureValue(this):e.visitChildren(this)}},B1=class extends u{constructor(e,t){super(e,t)}multiplicitySubset(){return this.getRuleContext(0,_1)}multiplicityRange(){return this.getRuleContext(0,V1)}get ruleIndex(){return s.RULE_multiplicity}enterRule(e){e.enterMultiplicity&&e.enterMultiplicity(this)}exitRule(e){e.exitMultiplicity&&e.exitMultiplicity(this)}accept(e){return e.visitMultiplicity?e.visitMultiplicity(this):e.visitChildren(this)}},_1=class extends u{constructor(e,t){super(e,t)}MULTIPLICITY(){return this.getToken(s.MULTIPLICITY,0)}subsets(){return this.getRuleContext(0,La)}typeBody(){return this.getRuleContext(0,Be)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_multiplicitySubset}enterRule(e){e.enterMultiplicitySubset&&e.enterMultiplicitySubset(this)}exitRule(e){e.exitMultiplicitySubset&&e.exitMultiplicitySubset(this)}accept(e){return e.visitMultiplicitySubset?e.visitMultiplicitySubset(this):e.visitChildren(this)}},V1=class extends u{constructor(e,t){super(e,t)}MULTIPLICITY(){return this.getToken(s.MULTIPLICITY,0)}multiplicityBounds(){return this.getRuleContext(0,Ua)}typeBody(){return this.getRuleContext(0,Be)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_multiplicityRange}enterRule(e){e.enterMultiplicityRange&&e.enterMultiplicityRange(this)}exitRule(e){e.exitMultiplicityRange&&e.exitMultiplicityRange(this)}accept(e){return e.visitMultiplicityRange?e.visitMultiplicityRange(this):e.visitChildren(this)}},_r=class extends u{constructor(e,t){super(e,t)}ownedMultiplicityRange(){return this.getRuleContext(0,q1)}get ruleIndex(){return s.RULE_ownedMultiplicity}enterRule(e){e.enterOwnedMultiplicity&&e.enterOwnedMultiplicity(this)}exitRule(e){e.exitOwnedMultiplicity&&e.exitOwnedMultiplicity(this)}accept(e){return e.visitOwnedMultiplicity?e.visitOwnedMultiplicity(this):e.visitChildren(this)}},q1=class extends u{constructor(e,t){super(e,t)}multiplicityBounds(){return this.getRuleContext(0,Ua)}get ruleIndex(){return s.RULE_ownedMultiplicityRange}enterRule(e){e.enterOwnedMultiplicityRange&&e.enterOwnedMultiplicityRange(this)}exitRule(e){e.exitOwnedMultiplicityRange&&e.exitOwnedMultiplicityRange(this)}accept(e){return e.visitOwnedMultiplicityRange?e.visitOwnedMultiplicityRange(this):e.visitChildren(this)}},Ua=class extends u{constructor(e,t){super(e,t)}LBRACK(){return this.getToken(s.LBRACK,0)}multiplicityExpressionMember(e){return e===void 0?this.getRuleContexts(wa):this.getRuleContext(e,wa)}RBRACK(){return this.getToken(s.RBRACK,0)}DOT_DOT(){return this.getToken(s.DOT_DOT,0)}get ruleIndex(){return s.RULE_multiplicityBounds}enterRule(e){e.enterMultiplicityBounds&&e.enterMultiplicityBounds(this)}exitRule(e){e.exitMultiplicityBounds&&e.exitMultiplicityBounds(this)}accept(e){return e.visitMultiplicityBounds?e.visitMultiplicityBounds(this):e.visitChildren(this)}},wa=class extends u{constructor(e,t){super(e,t)}literalExpression(){return this.getRuleContext(0,sa)}featureReferenceExpression(){return this.getRuleContext(0,Gu)}get ruleIndex(){return s.RULE_multiplicityExpressionMember}enterRule(e){e.enterMultiplicityExpressionMember&&e.enterMultiplicityExpressionMember(this)}exitRule(e){e.exitMultiplicityExpressionMember&&e.exitMultiplicityExpressionMember(this)}accept(e){return e.visitMultiplicityExpressionMember?e.visitMultiplicityExpressionMember(this):e.visitChildren(this)}},j1=class extends u{constructor(e,t){super(e,t)}typePrefix(){return this.getRuleContext(0,bt)}METACLASS(){return this.getToken(s.METACLASS,0)}classifierDeclaration(){return this.getRuleContext(0,At)}typeBody(){return this.getRuleContext(0,Be)}get ruleIndex(){return s.RULE_metaclass}enterRule(e){e.enterMetaclass&&e.enterMetaclass(this)}exitRule(e){e.exitMetaclass&&e.exitMetaclass(this)}accept(e){return e.visitMetaclass?e.visitMetaclass(this):e.visitChildren(this)}},Da=class extends u{constructor(e,t){super(e,t)}HASH(){return this.getToken(s.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,Oa)}prefixMetadataUsage(){return this.getRuleContext(0,Bo)}get ruleIndex(){return s.RULE_prefixMetadataAnnotation}enterRule(e){e.enterPrefixMetadataAnnotation&&e.enterPrefixMetadataAnnotation(this)}exitRule(e){e.exitPrefixMetadataAnnotation&&e.exitPrefixMetadataAnnotation(this)}accept(e){return e.visitPrefixMetadataAnnotation?e.visitPrefixMetadataAnnotation(this):e.visitChildren(this)}},tt=class extends u{constructor(e,t){super(e,t)}HASH(){return this.getToken(s.HASH,0)}prefixMetadataFeature(){return this.getRuleContext(0,Oa)}prefixMetadataUsage(){return this.getRuleContext(0,Bo)}get ruleIndex(){return s.RULE_prefixMetadataMember}enterRule(e){e.enterPrefixMetadataMember&&e.enterPrefixMetadataMember(this)}exitRule(e){e.exitPrefixMetadataMember&&e.exitPrefixMetadataMember(this)}accept(e){return e.visitPrefixMetadataMember?e.visitPrefixMetadataMember(this):e.visitChildren(this)}},Oa=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}get ruleIndex(){return s.RULE_prefixMetadataFeature}enterRule(e){e.enterPrefixMetadataFeature&&e.enterPrefixMetadataFeature(this)}exitRule(e){e.exitPrefixMetadataFeature&&e.exitPrefixMetadataFeature(this)}accept(e){return e.visitPrefixMetadataFeature?e.visitPrefixMetadataFeature(this):e.visitChildren(this)}},G1=class extends u{constructor(e,t){super(e,t)}metadataFeatureDeclaration(){return this.getRuleContext(0,W1)}metadataBody(){return this.getRuleContext(0,zi)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}METADATA(){return this.getToken(s.METADATA,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Fr):this.getRuleContext(e,Fr)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_metadataFeature}enterRule(e){e.enterMetadataFeature&&e.enterMetadataFeature(this)}exitRule(e){e.exitMetadataFeature&&e.exitMetadataFeature(this)}accept(e){return e.visitMetadataFeature?e.visitMetadataFeature(this):e.visitChildren(this)}},W1=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_metadataFeatureDeclaration}enterRule(e){e.enterMetadataFeatureDeclaration&&e.enterMetadataFeatureDeclaration(this)}exitRule(e){e.exitMetadataFeatureDeclaration&&e.exitMetadataFeatureDeclaration(this)}accept(e){return e.visitMetadataFeatureDeclaration?e.visitMetadataFeatureDeclaration(this):e.visitChildren(this)}},zi=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}metadataBodyElement(e){return e===void 0?this.getRuleContexts(Ia):this.getRuleContext(e,Ia)}definitionMember(e){return e===void 0?this.getRuleContexts($i):this.getRuleContext(e,$i)}metadataBodyUsageMember(e){return e===void 0?this.getRuleContexts(_o):this.getRuleContext(e,_o)}aliasMember(e){return e===void 0?this.getRuleContexts(ur):this.getRuleContext(e,ur)}importRule(e){return e===void 0?this.getRuleContexts(zt):this.getRuleContext(e,zt)}get ruleIndex(){return s.RULE_metadataBody}enterRule(e){e.enterMetadataBody&&e.enterMetadataBody(this)}exitRule(e){e.exitMetadataBody&&e.exitMetadataBody(this)}accept(e){return e.visitMetadataBody?e.visitMetadataBody(this):e.visitChildren(this)}},Ia=class extends u{constructor(e,t){super(e,t)}nonFeatureMember(){return this.getRuleContext(0,Zn)}metadataBodyFeatureMember(){return this.getRuleContext(0,z1)}aliasMember(){return this.getRuleContext(0,ur)}importRule(){return this.getRuleContext(0,zt)}get ruleIndex(){return s.RULE_metadataBodyElement}enterRule(e){e.enterMetadataBodyElement&&e.enterMetadataBodyElement(this)}exitRule(e){e.exitMetadataBodyElement&&e.exitMetadataBodyElement(this)}accept(e){return e.visitMetadataBodyElement?e.visitMetadataBodyElement(this):e.visitChildren(this)}},z1=class extends u{constructor(e,t){super(e,t)}metadataBodyFeature(){return this.getRuleContext(0,K1)}get ruleIndex(){return s.RULE_metadataBodyFeatureMember}enterRule(e){e.enterMetadataBodyFeatureMember&&e.enterMetadataBodyFeatureMember(this)}exitRule(e){e.exitMetadataBodyFeatureMember&&e.exitMetadataBodyFeatureMember(this)}accept(e){return e.visitMetadataBodyFeatureMember?e.visitMetadataBodyFeatureMember(this):e.visitChildren(this)}},K1=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,di)}metadataBody(){return this.getRuleContext(0,zi)}FEATURE(){return this.getToken(s.FEATURE,0)}featureSpecializationPart(){return this.getRuleContext(0,ft)}valuePart(){return this.getRuleContext(0,Ue)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_metadataBodyFeature}enterRule(e){e.enterMetadataBodyFeature&&e.enterMetadataBodyFeature(this)}exitRule(e){e.exitMetadataBodyFeature&&e.exitMetadataBodyFeature(this)}accept(e){return e.visitMetadataBodyFeature?e.visitMetadataBodyFeature(this):e.visitChildren(this)}},ka=class extends u{constructor(e,t){super(e,t)}packageDeclaration(){return this.getRuleContext(0,Ha)}packageBody(){return this.getRuleContext(0,Ba)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}get ruleIndex(){return s.RULE_package}enterRule(e){e.enterPackage&&e.enterPackage(this)}exitRule(e){e.exitPackage&&e.exitPackage(this)}accept(e){return e.visitPackage?e.visitPackage(this):e.visitChildren(this)}},Fa=class extends u{constructor(e,t){super(e,t)}LIBRARY(){return this.getToken(s.LIBRARY,0)}packageDeclaration(){return this.getRuleContext(0,Ha)}packageBody(){return this.getRuleContext(0,Ba)}STANDARD(){return this.getToken(s.STANDARD,0)}prefixMetadataMember(e){return e===void 0?this.getRuleContexts(tt):this.getRuleContext(e,tt)}get ruleIndex(){return s.RULE_libraryPackage}enterRule(e){e.enterLibraryPackage&&e.enterLibraryPackage(this)}exitRule(e){e.exitLibraryPackage&&e.exitLibraryPackage(this)}accept(e){return e.visitLibraryPackage?e.visitLibraryPackage(this):e.visitChildren(this)}},Ha=class extends u{constructor(e,t){super(e,t)}PACKAGE(){return this.getToken(s.PACKAGE,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_packageDeclaration}enterRule(e){e.enterPackageDeclaration&&e.enterPackageDeclaration(this)}exitRule(e){e.exitPackageDeclaration&&e.exitPackageDeclaration(this)}accept(e){return e.visitPackageDeclaration?e.visitPackageDeclaration(this):e.visitChildren(this)}},Ba=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}packageBodyElement(e){return e===void 0?this.getRuleContexts(Ki):this.getRuleContext(e,Ki)}get ruleIndex(){return s.RULE_packageBody}enterRule(e){e.enterPackageBody&&e.enterPackageBody(this)}exitRule(e){e.exitPackageBody&&e.exitPackageBody(this)}accept(e){return e.visitPackageBody?e.visitPackageBody(this):e.visitChildren(this)}},os=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}FILTER(){return this.getToken(s.FILTER,0)}ownedExpression(){return this.getRuleContext(0,ae)}SEMI(){return this.getToken(s.SEMI,0)}get ruleIndex(){return s.RULE_elementFilterMember}enterRule(e){e.enterElementFilterMember&&e.enterElementFilterMember(this)}exitRule(e){e.exitElementFilterMember&&e.exitElementFilterMember(this)}accept(e){return e.visitElementFilterMember?e.visitElementFilterMember(this):e.visitChildren(this)}},Q1=class extends u{constructor(e,t){super(e,t)}qualifiedName(e){return e===void 0?this.getRuleContexts(B):this.getRuleContext(e,B)}TO(){return this.getToken(s.TO,0)}FROM(){return this.getToken(s.FROM,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_dependencyDeclaration}enterRule(e){e.enterDependencyDeclaration&&e.enterDependencyDeclaration(this)}exitRule(e){e.exitDependencyDeclaration&&e.exitDependencyDeclaration(this)}accept(e){return e.visitDependencyDeclaration?e.visitDependencyDeclaration(this):e.visitChildren(this)}},_a=class extends u{constructor(e,t){super(e,t)}annotatingElement(){return this.getRuleContext(0,Bi)}get ruleIndex(){return s.RULE_annotatingMember}enterRule(e){e.enterAnnotatingMember&&e.enterAnnotatingMember(this)}exitRule(e){e.exitAnnotatingMember&&e.exitAnnotatingMember(this)}accept(e){return e.visitAnnotatingMember?e.visitAnnotatingMember(this):e.visitChildren(this)}},Ki=class extends u{constructor(e,t){super(e,t)}packageMember(){return this.getRuleContext(0,$1)}elementFilterMember(){return this.getRuleContext(0,os)}aliasMember(){return this.getRuleContext(0,ur)}importRule(){return this.getRuleContext(0,zt)}get ruleIndex(){return s.RULE_packageBodyElement}enterRule(e){e.enterPackageBodyElement&&e.enterPackageBodyElement(this)}exitRule(e){e.exitPackageBodyElement&&e.exitPackageBodyElement(this)}accept(e){return e.visitPackageBodyElement?e.visitPackageBodyElement(this):e.visitChildren(this)}},$1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}definitionElement(){return this.getRuleContext(0,ls)}usageElement(){return this.getRuleContext(0,Va)}get ruleIndex(){return s.RULE_packageMember}enterRule(e){e.enterPackageMember&&e.enterPackageMember(this)}exitRule(e){e.exitPackageMember&&e.exitPackageMember(this)}accept(e){return e.visitPackageMember?e.visitPackageMember(this):e.visitChildren(this)}},ls=class extends u{constructor(e,t){super(e,t)}package(){return this.getRuleContext(0,ka)}libraryPackage(){return this.getRuleContext(0,Fa)}annotatingElement(){return this.getRuleContext(0,Bi)}dependency(){return this.getRuleContext(0,oa)}attributeDefinition(){return this.getRuleContext(0,i0)}enumerationDefinition(){return this.getRuleContext(0,n0)}occurrenceDefinition(){return this.getRuleContext(0,o0)}individualDefinition(){return this.getRuleContext(0,l0)}itemDefinition(){return this.getRuleContext(0,h0)}partDefinition(){return this.getRuleContext(0,d0)}connectionDefinition(){return this.getRuleContext(0,b0)}flowDefinition(){return this.getRuleContext(0,D0)}interfaceDefinition(){return this.getRuleContext(0,y0)}portDefinition(){return this.getRuleContext(0,p0)}actionDefinition(){return this.getRuleContext(0,H0)}calculationDefinition(){return this.getRuleContext(0,qh)}stateDefinition(){return this.getRuleContext(0,yh)}constraintDefinition(){return this.getRuleContext(0,Wh)}requirementDefinition(){return this.getRuleContext(0,Qh)}concernDefinition(){return this.getRuleContext(0,cd)}caseDefinition(){return this.getRuleContext(0,dd)}analysisCaseDefinition(){return this.getRuleContext(0,xd)}verificationCaseDefinition(){return this.getRuleContext(0,gd)}useCaseDefinition(){return this.getRuleContext(0,vd)}viewDefinition(){return this.getRuleContext(0,Sd)}viewpointDefinition(){return this.getRuleContext(0,wd)}renderingDefinition(){return this.getRuleContext(0,Od)}metadataDefinition(){return this.getRuleContext(0,Id)}allocationDefinition(){return this.getRuleContext(0,U0)}extendedDefinition(){return this.getRuleContext(0,Hd)}get ruleIndex(){return s.RULE_definitionElement}enterRule(e){e.enterDefinitionElement&&e.enterDefinitionElement(this)}exitRule(e){e.exitDefinitionElement&&e.exitDefinitionElement(this)}accept(e){return e.visitDefinitionElement?e.visitDefinitionElement(this):e.visitChildren(this)}},Va=class extends u{constructor(e,t){super(e,t)}nonOccurrenceUsageElement(){return this.getRuleContext(0,ds)}occurrenceUsageElement(){return this.getRuleContext(0,ps)}get ruleIndex(){return s.RULE_usageElement}enterRule(e){e.enterUsageElement&&e.enterUsageElement(this)}exitRule(e){e.exitUsageElement&&e.exitUsageElement(this)}accept(e){return e.visitUsageElement?e.visitUsageElement(this):e.visitChildren(this)}},Qi=class extends u{constructor(e,t){super(e,t)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}VARIATION(){return this.getToken(s.VARIATION,0)}get ruleIndex(){return s.RULE_basicDefinitionPrefix}enterRule(e){e.enterBasicDefinitionPrefix&&e.enterBasicDefinitionPrefix(this)}exitRule(e){e.exitBasicDefinitionPrefix&&e.exitBasicDefinitionPrefix(this)}accept(e){return e.visitBasicDefinitionPrefix?e.visitBasicDefinitionPrefix(this):e.visitChildren(this)}},gt=class extends u{constructor(e,t){super(e,t)}prefixMetadataMember(){return this.getRuleContext(0,tt)}get ruleIndex(){return s.RULE_definitionExtensionKeyword}enterRule(e){e.enterDefinitionExtensionKeyword&&e.enterDefinitionExtensionKeyword(this)}exitRule(e){e.exitDefinitionExtensionKeyword&&e.exitDefinitionExtensionKeyword(this)}accept(e){return e.visitDefinitionExtensionKeyword?e.visitDefinitionExtensionKeyword(this):e.visitChildren(this)}},qa=class extends u{constructor(e,t){super(e,t)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_definitionPrefix}enterRule(e){e.enterDefinitionPrefix&&e.enterDefinitionPrefix(this)}exitRule(e){e.exitDefinitionPrefix&&e.exitDefinitionPrefix(this)}accept(e){return e.visitDefinitionPrefix?e.visitDefinitionPrefix(this):e.visitChildren(this)}},Rt=class extends u{constructor(e,t){super(e,t)}definitionDeclaration(){return this.getRuleContext(0,rt)}definitionBody(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_definition}enterRule(e){e.enterDefinition&&e.enterDefinition(this)}exitRule(e){e.exitDefinition&&e.exitDefinition(this)}accept(e){return e.visitDefinition?e.visitDefinition(this):e.visitChildren(this)}},rt=class extends u{constructor(e,t){super(e,t)}identification(){return this.getRuleContext(0,ve)}subclassificationPart(){return this.getRuleContext(0,r0)}get ruleIndex(){return s.RULE_definitionDeclaration}enterRule(e){e.enterDefinitionDeclaration&&e.enterDefinitionDeclaration(this)}exitRule(e){e.exitDefinitionDeclaration&&e.exitDefinitionDeclaration(this)}accept(e){return e.visitDefinitionDeclaration?e.visitDefinitionDeclaration(this):e.visitChildren(this)}},fi=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}definitionBodyItem(e){return e===void 0?this.getRuleContexts(mi):this.getRuleContext(e,mi)}get ruleIndex(){return s.RULE_definitionBody}enterRule(e){e.enterDefinitionBody&&e.enterDefinitionBody(this)}exitRule(e){e.exitDefinitionBody&&e.exitDefinitionBody(this)}accept(e){return e.visitDefinitionBody?e.visitDefinitionBody(this):e.visitChildren(this)}},mi=class extends u{constructor(e,t){super(e,t)}importRule(){return this.getRuleContext(0,zt)}memberPrefix(){return this.getRuleContext(0,oe)}definitionBodyItemContent(){return this.getRuleContext(0,Y1)}occurrenceUsageElement(){return this.getRuleContext(0,ps)}sourceSuccessionMember(){return this.getRuleContext(0,bi)}get ruleIndex(){return s.RULE_definitionBodyItem}enterRule(e){e.enterDefinitionBodyItem&&e.enterDefinitionBodyItem(this)}exitRule(e){e.exitDefinitionBodyItem&&e.exitDefinitionBodyItem(this)}accept(e){return e.visitDefinitionBodyItem?e.visitDefinitionBodyItem(this):e.visitChildren(this)}},Y1=class extends u{constructor(e,t){super(e,t)}ALIAS(){return this.getToken(s.ALIAS,0)}FOR(){return this.getToken(s.FOR,0)}qualifiedName(){return this.getRuleContext(0,B)}relationshipBody(){return this.getRuleContext(0,Ze)}LT(){return this.getToken(s.LT,0)}name(e){return e===void 0?this.getRuleContexts(xt):this.getRuleContext(e,xt)}GT(){return this.getToken(s.GT,0)}VARIANT(){return this.getToken(s.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,za)}definitionElement(){return this.getRuleContext(0,ls)}nonOccurrenceUsageElement(){return this.getRuleContext(0,ds)}get ruleIndex(){return s.RULE_definitionBodyItemContent}enterRule(e){e.enterDefinitionBodyItemContent&&e.enterDefinitionBodyItemContent(this)}exitRule(e){e.exitDefinitionBodyItemContent&&e.exitDefinitionBodyItemContent(this)}accept(e){return e.visitDefinitionBodyItemContent?e.visitDefinitionBodyItemContent(this):e.visitChildren(this)}},$i=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}definitionElement(){return this.getRuleContext(0,ls)}get ruleIndex(){return s.RULE_definitionMember}enterRule(e){e.enterDefinitionMember&&e.enterDefinitionMember(this)}exitRule(e){e.exitDefinitionMember&&e.exitDefinitionMember(this)}accept(e){return e.visitDefinitionMember?e.visitDefinitionMember(this):e.visitChildren(this)}},ja=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}VARIANT(){return this.getToken(s.VARIANT,0)}variantUsageElement(){return this.getRuleContext(0,za)}get ruleIndex(){return s.RULE_variantUsageMember}enterRule(e){e.enterVariantUsageMember&&e.enterVariantUsageMember(this)}exitRule(e){e.exitVariantUsageMember&&e.exitVariantUsageMember(this)}accept(e){return e.visitVariantUsageMember?e.visitVariantUsageMember(this):e.visitChildren(this)}},J1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}nonOccurrenceUsageElement(){return this.getRuleContext(0,ds)}get ruleIndex(){return s.RULE_nonOccurrenceUsageMember}enterRule(e){e.enterNonOccurrenceUsageMember&&e.enterNonOccurrenceUsageMember(this)}exitRule(e){e.exitNonOccurrenceUsageMember&&e.exitNonOccurrenceUsageMember(this)}accept(e){return e.visitNonOccurrenceUsageMember?e.visitNonOccurrenceUsageMember(this):e.visitChildren(this)}},s4=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}occurrenceUsageElement(){return this.getRuleContext(0,ps)}get ruleIndex(){return s.RULE_occurrenceUsageMember}enterRule(e){e.enterOccurrenceUsageMember&&e.enterOccurrenceUsageMember(this)}exitRule(e){e.exitOccurrenceUsageMember&&e.exitOccurrenceUsageMember(this)}accept(e){return e.visitOccurrenceUsageMember?e.visitOccurrenceUsageMember(this):e.visitChildren(this)}},X1=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}structureUsageElement(){return this.getRuleContext(0,fs)}get ruleIndex(){return s.RULE_structureUsageMember}enterRule(e){e.enterStructureUsageMember&&e.enterStructureUsageMember(this)}exitRule(e){e.exitStructureUsageMember&&e.exitStructureUsageMember(this)}accept(e){return e.visitStructureUsageMember?e.visitStructureUsageMember(this):e.visitChildren(this)}},Ga=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_behaviorUsageMember}enterRule(e){e.enterBehaviorUsageMember&&e.enterBehaviorUsageMember(this)}exitRule(e){e.exitBehaviorUsageMember&&e.exitBehaviorUsageMember(this)}accept(e){return e.visitBehaviorUsageMember?e.visitBehaviorUsageMember(this):e.visitChildren(this)}},Yi=class extends u{constructor(e,t){super(e,t)}featureDirection(){return this.getRuleContext(0,Ca)}DERIVED(){return this.getToken(s.DERIVED,0)}CONSTANT(){return this.getToken(s.CONSTANT,0)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}VARIATION(){return this.getToken(s.VARIATION,0)}get ruleIndex(){return s.RULE_refPrefix}enterRule(e){e.enterRefPrefix&&e.enterRefPrefix(this)}exitRule(e){e.exitRefPrefix&&e.exitRefPrefix(this)}accept(e){return e.visitRefPrefix?e.visitRefPrefix(this):e.visitChildren(this)}},xi=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}REF(){return this.getToken(s.REF,0)}get ruleIndex(){return s.RULE_basicUsagePrefix}enterRule(e){e.enterBasicUsagePrefix&&e.enterBasicUsagePrefix(this)}exitRule(e){e.exitBasicUsagePrefix&&e.exitBasicUsagePrefix(this)}accept(e){return e.visitBasicUsagePrefix?e.visitBasicUsagePrefix(this):e.visitChildren(this)}},us=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}ownedCrossFeatureMember(){return this.getRuleContext(0,ya)}get ruleIndex(){return s.RULE_endUsagePrefix}enterRule(e){e.enterEndUsagePrefix&&e.enterEndUsagePrefix(this)}exitRule(e){e.exitEndUsagePrefix&&e.exitEndUsagePrefix(this)}accept(e){return e.visitEndUsagePrefix?e.visitEndUsagePrefix(this):e.visitChildren(this)}},pe=class extends u{constructor(e,t){super(e,t)}prefixMetadataMember(){return this.getRuleContext(0,tt)}get ruleIndex(){return s.RULE_usageExtensionKeyword}enterRule(e){e.enterUsageExtensionKeyword&&e.enterUsageExtensionKeyword(this)}exitRule(e){e.exitUsageExtensionKeyword&&e.exitUsageExtensionKeyword(this)}accept(e){return e.visitUsageExtensionKeyword?e.visitUsageExtensionKeyword(this):e.visitChildren(this)}},Wa=class extends u{constructor(e,t){super(e,t)}endUsagePrefix(){return this.getRuleContext(0,us)}basicUsagePrefix(){return this.getRuleContext(0,xi)}get ruleIndex(){return s.RULE_unextendedUsagePrefix}enterRule(e){e.enterUnextendedUsagePrefix&&e.enterUnextendedUsagePrefix(this)}exitRule(e){e.exitUnextendedUsagePrefix&&e.exitUnextendedUsagePrefix(this)}accept(e){return e.visitUnextendedUsagePrefix?e.visitUnextendedUsagePrefix(this):e.visitChildren(this)}},Ji=class extends u{constructor(e,t){super(e,t)}unextendedUsagePrefix(){return this.getRuleContext(0,Wa)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_usagePrefix}enterRule(e){e.enterUsagePrefix&&e.enterUsagePrefix(this)}exitRule(e){e.exitUsagePrefix&&e.exitUsagePrefix(this)}accept(e){return e.visitUsagePrefix?e.visitUsagePrefix(this):e.visitChildren(this)}},qe=class extends u{constructor(e,t){super(e,t)}usageCompletion(){return this.getRuleContext(0,cs)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_usage}enterRule(e){e.enterUsage&&e.enterUsage(this)}exitRule(e){e.exitUsage&&e.exitUsage(this)}accept(e){return e.visitUsage?e.visitUsage(this):e.visitChildren(this)}},be=class extends u{constructor(e,t){super(e,t)}identification(){return this.getRuleContext(0,ve)}featureSpecializationPart(){return this.getRuleContext(0,ft)}get ruleIndex(){return s.RULE_usageDeclaration}enterRule(e){e.enterUsageDeclaration&&e.enterUsageDeclaration(this)}exitRule(e){e.exitUsageDeclaration&&e.exitUsageDeclaration(this)}accept(e){return e.visitUsageDeclaration?e.visitUsageDeclaration(this):e.visitChildren(this)}},cs=class extends u{constructor(e,t){super(e,t)}usageBody(){return this.getRuleContext(0,Kt)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_usageCompletion}enterRule(e){e.enterUsageCompletion&&e.enterUsageCompletion(this)}exitRule(e){e.exitUsageCompletion&&e.exitUsageCompletion(this)}accept(e){return e.visitUsageCompletion?e.visitUsageCompletion(this):e.visitChildren(this)}},Kt=class extends u{constructor(e,t){super(e,t)}definitionBody(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_usageBody}enterRule(e){e.enterUsageBody&&e.enterUsageBody(this)}exitRule(e){e.exitUsageBody&&e.exitUsageBody(this)}accept(e){return e.visitUsageBody?e.visitUsageBody(this):e.visitChildren(this)}},Z1=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_defaultReferenceUsage}enterRule(e){e.enterDefaultReferenceUsage&&e.enterDefaultReferenceUsage(this)}exitRule(e){e.exitDefaultReferenceUsage&&e.exitDefaultReferenceUsage(this)}accept(e){return e.visitDefaultReferenceUsage?e.visitDefaultReferenceUsage(this):e.visitChildren(this)}},hs=class extends u{constructor(e,t){super(e,t)}REF(){return this.getToken(s.REF,0)}usage(){return this.getRuleContext(0,qe)}endUsagePrefix(){return this.getRuleContext(0,us)}refPrefix(){return this.getRuleContext(0,Yi)}get ruleIndex(){return s.RULE_referenceUsage}enterRule(e){e.enterReferenceUsage&&e.enterReferenceUsage(this)}exitRule(e){e.exitReferenceUsage&&e.exitReferenceUsage(this)}accept(e){return e.visitReferenceUsage?e.visitReferenceUsage(this):e.visitChildren(this)}},e0=class extends u{constructor(e,t){super(e,t)}endUsagePrefix(){return this.getRuleContext(0,us)}featureDeclaration(){return this.getRuleContext(0,pt)}usageCompletion(){return this.getRuleContext(0,cs)}get ruleIndex(){return s.RULE_endFeatureUsage}enterRule(e){e.enterEndFeatureUsage&&e.enterEndFeatureUsage(this)}exitRule(e){e.exitEndFeatureUsage&&e.exitEndFeatureUsage(this)}accept(e){return e.visitEndFeatureUsage?e.visitEndFeatureUsage(this):e.visitChildren(this)}},t0=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}usageBody(){return this.getRuleContext(0,Kt)}featureSpecialization(e){return e===void 0?this.getRuleContexts(cr):this.getRuleContext(e,cr)}get ruleIndex(){return s.RULE_variantReference}enterRule(e){e.enterVariantReference&&e.enterVariantReference(this)}exitRule(e){e.exitVariantReference&&e.exitVariantReference(this)}accept(e){return e.visitVariantReference?e.visitVariantReference(this):e.visitChildren(this)}},ds=class extends u{constructor(e,t){super(e,t)}referenceUsage(){return this.getRuleContext(0,hs)}endFeatureUsage(){return this.getRuleContext(0,e0)}attributeUsage(){return this.getRuleContext(0,ms)}enumerationUsage(){return this.getRuleContext(0,Qa)}bindingConnectorAsUsage(){return this.getRuleContext(0,bs)}successionAsUsage(){return this.getRuleContext(0,gs)}extendedUsage(){return this.getRuleContext(0,Bd)}defaultReferenceUsage(){return this.getRuleContext(0,Z1)}get ruleIndex(){return s.RULE_nonOccurrenceUsageElement}enterRule(e){e.enterNonOccurrenceUsageElement&&e.enterNonOccurrenceUsageElement(this)}exitRule(e){e.exitNonOccurrenceUsageElement&&e.exitNonOccurrenceUsageElement(this)}accept(e){return e.visitNonOccurrenceUsageElement?e.visitNonOccurrenceUsageElement(this):e.visitChildren(this)}},ps=class extends u{constructor(e,t){super(e,t)}structureUsageElement(){return this.getRuleContext(0,fs)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_occurrenceUsageElement}enterRule(e){e.enterOccurrenceUsageElement&&e.enterOccurrenceUsageElement(this)}exitRule(e){e.exitOccurrenceUsageElement&&e.exitOccurrenceUsageElement(this)}accept(e){return e.visitOccurrenceUsageElement?e.visitOccurrenceUsageElement(this):e.visitChildren(this)}},fs=class extends u{constructor(e,t){super(e,t)}occurrenceUsage(){return this.getRuleContext(0,Ya)}individualUsage(){return this.getRuleContext(0,Ja)}portionUsage(){return this.getRuleContext(0,Xa)}eventOccurrenceUsage(){return this.getRuleContext(0,Za)}itemUsage(){return this.getRuleContext(0,to)}partUsage(){return this.getRuleContext(0,ro)}viewUsage(){return this.getRuleContext(0,ko)}renderingUsage(){return this.getRuleContext(0,Ho)}portUsage(){return this.getRuleContext(0,io)}connectionUsage(){return this.getRuleContext(0,no)}interfaceUsage(){return this.getRuleContext(0,lo)}allocationUsage(){return this.getRuleContext(0,uo)}message(){return this.getRuleContext(0,co)}flowUsage(){return this.getRuleContext(0,po)}successionFlowUsage(){return this.getRuleContext(0,fo)}get ruleIndex(){return s.RULE_structureUsageElement}enterRule(e){e.enterStructureUsageElement&&e.enterStructureUsageElement(this)}exitRule(e){e.exitStructureUsageElement&&e.exitStructureUsageElement(this)}accept(e){return e.visitStructureUsageElement?e.visitStructureUsageElement(this):e.visitChildren(this)}},Xi=class extends u{constructor(e,t){super(e,t)}actionUsage(){return this.getRuleContext(0,j0)}calculationUsage(){return this.getRuleContext(0,jh)}stateUsage(){return this.getRuleContext(0,Nh)}constraintUsage(){return this.getRuleContext(0,zh)}requirementUsage(){return this.getRuleContext(0,nd)}concernUsage(){return this.getRuleContext(0,hd)}caseUsage(){return this.getRuleContext(0,pd)}analysisCaseUsage(){return this.getRuleContext(0,bd)}verificationCaseUsage(){return this.getRuleContext(0,Rd)}useCaseUsage(){return this.getRuleContext(0,Ed)}viewpointUsage(){return this.getRuleContext(0,Dd)}performActionUsage(){return this.getRuleContext(0,G0)}exhibitStateUsage(){return this.getRuleContext(0,Uh)}includeUseCaseUsage(){return this.getRuleContext(0,Ld)}assertConstraintUsage(){return this.getRuleContext(0,Kh)}satisfyRequirementUsage(){return this.getRuleContext(0,sd)}get ruleIndex(){return s.RULE_behaviorUsageElement}enterRule(e){e.enterBehaviorUsageElement&&e.enterBehaviorUsageElement(this)}exitRule(e){e.exitBehaviorUsageElement&&e.exitBehaviorUsageElement(this)}accept(e){return e.visitBehaviorUsageElement?e.visitBehaviorUsageElement(this):e.visitChildren(this)}},za=class extends u{constructor(e,t){super(e,t)}variantReference(){return this.getRuleContext(0,t0)}referenceUsage(){return this.getRuleContext(0,hs)}attributeUsage(){return this.getRuleContext(0,ms)}bindingConnectorAsUsage(){return this.getRuleContext(0,bs)}successionAsUsage(){return this.getRuleContext(0,gs)}occurrenceUsage(){return this.getRuleContext(0,Ya)}individualUsage(){return this.getRuleContext(0,Ja)}portionUsage(){return this.getRuleContext(0,Xa)}eventOccurrenceUsage(){return this.getRuleContext(0,Za)}itemUsage(){return this.getRuleContext(0,to)}partUsage(){return this.getRuleContext(0,ro)}viewUsage(){return this.getRuleContext(0,ko)}renderingUsage(){return this.getRuleContext(0,Ho)}portUsage(){return this.getRuleContext(0,io)}connectionUsage(){return this.getRuleContext(0,no)}interfaceUsage(){return this.getRuleContext(0,lo)}allocationUsage(){return this.getRuleContext(0,uo)}message(){return this.getRuleContext(0,co)}flowUsage(){return this.getRuleContext(0,po)}successionFlowUsage(){return this.getRuleContext(0,fo)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_variantUsageElement}enterRule(e){e.enterVariantUsageElement&&e.enterVariantUsageElement(this)}exitRule(e){e.exitVariantUsageElement&&e.exitVariantUsageElement(this)}accept(e){return e.visitVariantUsageElement?e.visitVariantUsageElement(this):e.visitChildren(this)}},r0=class extends u{constructor(e,t){super(e,t)}ownedSubclassification(e){return e===void 0?this.getRuleContexts(qi):this.getRuleContext(e,qi)}COLON_GT(){return this.getToken(s.COLON_GT,0)}SPECIALIZES(){return this.getToken(s.SPECIALIZES,0)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_subclassificationPart}enterRule(e){e.enterSubclassificationPart&&e.enterSubclassificationPart(this)}exitRule(e){e.exitSubclassificationPart&&e.exitSubclassificationPart(this)}accept(e){return e.visitSubclassificationPart?e.visitSubclassificationPart(this):e.visitChildren(this)}},i0=class extends u{constructor(e,t){super(e,t)}definitionPrefix(){return this.getRuleContext(0,qa)}ATTRIBUTE(){return this.getToken(s.ATTRIBUTE,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_attributeDefinition}enterRule(e){e.enterAttributeDefinition&&e.enterAttributeDefinition(this)}exitRule(e){e.exitAttributeDefinition&&e.exitAttributeDefinition(this)}accept(e){return e.visitAttributeDefinition?e.visitAttributeDefinition(this):e.visitChildren(this)}},ms=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}ATTRIBUTE(){return this.getToken(s.ATTRIBUTE,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_attributeUsage}enterRule(e){e.enterAttributeUsage&&e.enterAttributeUsage(this)}exitRule(e){e.exitAttributeUsage&&e.exitAttributeUsage(this)}accept(e){return e.visitAttributeUsage?e.visitAttributeUsage(this):e.visitChildren(this)}},n0=class extends u{constructor(e,t){super(e,t)}ENUM(){return this.getToken(s.ENUM,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}enumerationBody(){return this.getRuleContext(0,s0)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_enumerationDefinition}enterRule(e){e.enterEnumerationDefinition&&e.enterEnumerationDefinition(this)}exitRule(e){e.exitEnumerationDefinition&&e.exitEnumerationDefinition(this)}accept(e){return e.visitEnumerationDefinition?e.visitEnumerationDefinition(this):e.visitChildren(this)}},s0=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}annotatingMember(e){return e===void 0?this.getRuleContexts(_a):this.getRuleContext(e,_a)}enumerationUsageMember(e){return e===void 0?this.getRuleContexts(Ka):this.getRuleContext(e,Ka)}get ruleIndex(){return s.RULE_enumerationBody}enterRule(e){e.enterEnumerationBody&&e.enterEnumerationBody(this)}exitRule(e){e.exitEnumerationBody&&e.exitEnumerationBody(this)}accept(e){return e.visitEnumerationBody?e.visitEnumerationBody(this):e.visitChildren(this)}},Ka=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}enumeratedValue(){return this.getRuleContext(0,a0)}get ruleIndex(){return s.RULE_enumerationUsageMember}enterRule(e){e.enterEnumerationUsageMember&&e.enterEnumerationUsageMember(this)}exitRule(e){e.exitEnumerationUsageMember&&e.exitEnumerationUsageMember(this)}accept(e){return e.visitEnumerationUsageMember?e.visitEnumerationUsageMember(this):e.visitChildren(this)}},a0=class extends u{constructor(e,t){super(e,t)}usage(){return this.getRuleContext(0,qe)}ENUM(){return this.getToken(s.ENUM,0)}get ruleIndex(){return s.RULE_enumeratedValue}enterRule(e){e.enterEnumeratedValue&&e.enterEnumeratedValue(this)}exitRule(e){e.exitEnumeratedValue&&e.exitEnumeratedValue(this)}accept(e){return e.visitEnumeratedValue?e.visitEnumeratedValue(this):e.visitChildren(this)}},Qa=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}ENUM(){return this.getToken(s.ENUM,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_enumerationUsage}enterRule(e){e.enterEnumerationUsage&&e.enterEnumerationUsage(this)}exitRule(e){e.exitEnumerationUsage&&e.exitEnumerationUsage(this)}accept(e){return e.visitEnumerationUsage?e.visitEnumerationUsage(this):e.visitChildren(this)}},Ie=class extends u{constructor(e,t){super(e,t)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}emptyMultiplicityMember(){return this.getRuleContext(0,$a)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_occurrenceDefinitionPrefix}enterRule(e){e.enterOccurrenceDefinitionPrefix&&e.enterOccurrenceDefinitionPrefix(this)}exitRule(e){e.exitOccurrenceDefinitionPrefix&&e.exitOccurrenceDefinitionPrefix(this)}accept(e){return e.visitOccurrenceDefinitionPrefix?e.visitOccurrenceDefinitionPrefix(this):e.visitChildren(this)}},o0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_occurrenceDefinition}enterRule(e){e.enterOccurrenceDefinition&&e.enterOccurrenceDefinition(this)}exitRule(e){e.exitOccurrenceDefinition&&e.exitOccurrenceDefinition(this)}accept(e){return e.visitOccurrenceDefinition?e.visitOccurrenceDefinition(this):e.visitChildren(this)}},l0=class extends u{constructor(e,t){super(e,t)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}emptyMultiplicityMember(){return this.getRuleContext(0,$a)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_individualDefinition}enterRule(e){e.enterIndividualDefinition&&e.enterIndividualDefinition(this)}exitRule(e){e.exitIndividualDefinition&&e.exitIndividualDefinition(this)}accept(e){return e.visitIndividualDefinition?e.visitIndividualDefinition(this):e.visitChildren(this)}},$a=class extends u{constructor(e,t){super(e,t)}emptyMultiplicity_(){return this.getRuleContext(0,jd)}get ruleIndex(){return s.RULE_emptyMultiplicityMember}enterRule(e){e.enterEmptyMultiplicityMember&&e.enterEmptyMultiplicityMember(this)}exitRule(e){e.exitEmptyMultiplicityMember&&e.exitEmptyMultiplicityMember(this)}accept(e){return e.visitEmptyMultiplicityMember?e.visitEmptyMultiplicityMember(this):e.visitChildren(this)}},ce=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,xi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,xs)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_occurrenceUsagePrefix}enterRule(e){e.enterOccurrenceUsagePrefix&&e.enterOccurrenceUsagePrefix(this)}exitRule(e){e.exitOccurrenceUsagePrefix&&e.exitOccurrenceUsagePrefix(this)}accept(e){return e.visitOccurrenceUsagePrefix?e.visitOccurrenceUsagePrefix(this):e.visitChildren(this)}},Ya=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_occurrenceUsage}enterRule(e){e.enterOccurrenceUsage&&e.enterOccurrenceUsage(this)}exitRule(e){e.exitOccurrenceUsage&&e.exitOccurrenceUsage(this)}accept(e){return e.visitOccurrenceUsage?e.visitOccurrenceUsage(this):e.visitChildren(this)}},Ja=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,xi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}usage(){return this.getRuleContext(0,qe)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_individualUsage}enterRule(e){e.enterIndividualUsage&&e.enterIndividualUsage(this)}exitRule(e){e.exitIndividualUsage&&e.exitIndividualUsage(this)}accept(e){return e.visitIndividualUsage?e.visitIndividualUsage(this):e.visitChildren(this)}},Xa=class extends u{constructor(e,t){super(e,t)}basicUsagePrefix(){return this.getRuleContext(0,xi)}portionKind(){return this.getRuleContext(0,xs)}usage(){return this.getRuleContext(0,qe)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_portionUsage}enterRule(e){e.enterPortionUsage&&e.enterPortionUsage(this)}exitRule(e){e.exitPortionUsage&&e.exitPortionUsage(this)}accept(e){return e.visitPortionUsage?e.visitPortionUsage(this):e.visitChildren(this)}},xs=class extends u{constructor(e,t){super(e,t)}SNAPSHOT(){return this.getToken(s.SNAPSHOT,0)}TIMESLICE(){return this.getToken(s.TIMESLICE,0)}get ruleIndex(){return s.RULE_portionKind}enterRule(e){e.enterPortionKind&&e.enterPortionKind(this)}exitRule(e){e.exitPortionKind&&e.exitPortionKind(this)}accept(e){return e.visitPortionKind?e.visitPortionKind(this):e.visitChildren(this)}},Za=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}EVENT(){return this.getToken(s.EVENT,0)}usageCompletion(){return this.getRuleContext(0,cs)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}OCCURRENCE(){return this.getToken(s.OCCURRENCE,0)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_eventOccurrenceUsage}enterRule(e){e.enterEventOccurrenceUsage&&e.enterEventOccurrenceUsage(this)}exitRule(e){e.exitEventOccurrenceUsage&&e.exitEventOccurrenceUsage(this)}accept(e){return e.visitEventOccurrenceUsage?e.visitEventOccurrenceUsage(this):e.visitChildren(this)}},bi=class extends u{constructor(e,t){super(e,t)}THEN(){return this.getToken(s.THEN,0)}sourceSuccession(){return this.getRuleContext(0,u0)}get ruleIndex(){return s.RULE_sourceSuccessionMember}enterRule(e){e.enterSourceSuccessionMember&&e.enterSourceSuccessionMember(this)}exitRule(e){e.exitSourceSuccessionMember&&e.exitSourceSuccessionMember(this)}accept(e){return e.visitSourceSuccessionMember?e.visitSourceSuccessionMember(this):e.visitChildren(this)}},u0=class extends u{constructor(e,t){super(e,t)}sourceEndMember(){return this.getRuleContext(0,eo)}get ruleIndex(){return s.RULE_sourceSuccession}enterRule(e){e.enterSourceSuccession&&e.enterSourceSuccession(this)}exitRule(e){e.exitSourceSuccession&&e.exitSourceSuccession(this)}accept(e){return e.visitSourceSuccession?e.visitSourceSuccession(this):e.visitChildren(this)}},eo=class extends u{constructor(e,t){super(e,t)}sourceEnd(){return this.getRuleContext(0,c0)}get ruleIndex(){return s.RULE_sourceEndMember}enterRule(e){e.enterSourceEndMember&&e.enterSourceEndMember(this)}exitRule(e){e.exitSourceEndMember&&e.exitSourceEndMember(this)}accept(e){return e.visitSourceEndMember?e.visitSourceEndMember(this):e.visitChildren(this)}},c0=class extends u{constructor(e,t){super(e,t)}ownedMultiplicity(){return this.getRuleContext(0,_r)}get ruleIndex(){return s.RULE_sourceEnd}enterRule(e){e.enterSourceEnd&&e.enterSourceEnd(this)}exitRule(e){e.exitSourceEnd&&e.exitSourceEnd(this)}accept(e){return e.visitSourceEnd?e.visitSourceEnd(this):e.visitChildren(this)}},h0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}ITEM(){return this.getToken(s.ITEM,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_itemDefinition}enterRule(e){e.enterItemDefinition&&e.enterItemDefinition(this)}exitRule(e){e.exitItemDefinition&&e.exitItemDefinition(this)}accept(e){return e.visitItemDefinition?e.visitItemDefinition(this):e.visitChildren(this)}},to=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}ITEM(){return this.getToken(s.ITEM,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_itemUsage}enterRule(e){e.enterItemUsage&&e.enterItemUsage(this)}exitRule(e){e.exitItemUsage&&e.exitItemUsage(this)}accept(e){return e.visitItemUsage?e.visitItemUsage(this):e.visitChildren(this)}},d0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}PART(){return this.getToken(s.PART,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_partDefinition}enterRule(e){e.enterPartDefinition&&e.enterPartDefinition(this)}exitRule(e){e.exitPartDefinition&&e.exitPartDefinition(this)}accept(e){return e.visitPartDefinition?e.visitPartDefinition(this):e.visitChildren(this)}},ro=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}PART(){return this.getToken(s.PART,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_partUsage}enterRule(e){e.enterPartUsage&&e.enterPartUsage(this)}exitRule(e){e.exitPartUsage&&e.exitPartUsage(this)}accept(e){return e.visitPartUsage?e.visitPartUsage(this):e.visitChildren(this)}},p0=class extends u{constructor(e,t){super(e,t)}definitionPrefix(){return this.getRuleContext(0,qa)}PORT(){return this.getToken(s.PORT,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}conjugatedPortDefinitionMember(){return this.getRuleContext(0,f0)}get ruleIndex(){return s.RULE_portDefinition}enterRule(e){e.enterPortDefinition&&e.enterPortDefinition(this)}exitRule(e){e.exitPortDefinition&&e.exitPortDefinition(this)}accept(e){return e.visitPortDefinition?e.visitPortDefinition(this):e.visitChildren(this)}},f0=class extends u{constructor(e,t){super(e,t)}conjugatedPortDefinition(){return this.getRuleContext(0,m0)}get ruleIndex(){return s.RULE_conjugatedPortDefinitionMember}enterRule(e){e.enterConjugatedPortDefinitionMember&&e.enterConjugatedPortDefinitionMember(this)}exitRule(e){e.exitConjugatedPortDefinitionMember&&e.exitConjugatedPortDefinitionMember(this)}accept(e){return e.visitConjugatedPortDefinitionMember?e.visitConjugatedPortDefinitionMember(this):e.visitChildren(this)}},m0=class extends u{constructor(e,t){super(e,t)}portConjugation(){return this.getRuleContext(0,Kd)}get ruleIndex(){return s.RULE_conjugatedPortDefinition}enterRule(e){e.enterConjugatedPortDefinition&&e.enterConjugatedPortDefinition(this)}exitRule(e){e.exitConjugatedPortDefinition&&e.exitConjugatedPortDefinition(this)}accept(e){return e.visitConjugatedPortDefinition?e.visitConjugatedPortDefinition(this):e.visitChildren(this)}},io=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}PORT(){return this.getToken(s.PORT,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_portUsage}enterRule(e){e.enterPortUsage&&e.enterPortUsage(this)}exitRule(e){e.exitPortUsage&&e.exitPortUsage(this)}accept(e){return e.visitPortUsage?e.visitPortUsage(this):e.visitChildren(this)}},x0=class extends u{constructor(e,t){super(e,t)}TILDE(){return this.getToken(s.TILDE,0)}qualifiedName(){return this.getRuleContext(0,B)}get ruleIndex(){return s.RULE_conjugatedPortTyping}enterRule(e){e.enterConjugatedPortTyping&&e.enterConjugatedPortTyping(this)}exitRule(e){e.exitConjugatedPortTyping&&e.exitConjugatedPortTyping(this)}accept(e){return e.visitConjugatedPortTyping?e.visitConjugatedPortTyping(this):e.visitChildren(this)}},b0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}CONNECTION(){return this.getToken(s.CONNECTION,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_connectionDefinition}enterRule(e){e.enterConnectionDefinition&&e.enterConnectionDefinition(this)}exitRule(e){e.exitConnectionDefinition&&e.exitConnectionDefinition(this)}accept(e){return e.visitConnectionDefinition?e.visitConnectionDefinition(this):e.visitChildren(this)}},no=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}usageBody(){return this.getRuleContext(0,Kt)}CONNECTION(){return this.getToken(s.CONNECTION,0)}CONNECT(){return this.getToken(s.CONNECT,0)}connectorPart(){return this.getRuleContext(0,so)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_connectionUsage}enterRule(e){e.enterConnectionUsage&&e.enterConnectionUsage(this)}exitRule(e){e.exitConnectionUsage&&e.exitConnectionUsage(this)}accept(e){return e.visitConnectionUsage?e.visitConnectionUsage(this):e.visitChildren(this)}},so=class extends u{constructor(e,t){super(e,t)}binaryConnectorPart(){return this.getRuleContext(0,g0)}naryConnectorPart(){return this.getRuleContext(0,R0)}get ruleIndex(){return s.RULE_connectorPart}enterRule(e){e.enterConnectorPart&&e.enterConnectorPart(this)}exitRule(e){e.exitConnectorPart&&e.exitConnectorPart(this)}accept(e){return e.visitConnectorPart?e.visitConnectorPart(this):e.visitChildren(this)}},g0=class extends u{constructor(e,t){super(e,t)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_binaryConnectorPart}enterRule(e){e.enterBinaryConnectorPart&&e.enterBinaryConnectorPart(this)}exitRule(e){e.exitBinaryConnectorPart&&e.exitBinaryConnectorPart(this)}accept(e){return e.visitBinaryConnectorPart?e.visitBinaryConnectorPart(this):e.visitChildren(this)}},R0=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_naryConnectorPart}enterRule(e){e.enterNaryConnectorPart&&e.enterNaryConnectorPart(this)}exitRule(e){e.exitNaryConnectorPart&&e.exitNaryConnectorPart(this)}accept(e){return e.visitNaryConnectorPart?e.visitNaryConnectorPart(this):e.visitChildren(this)}},bs=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}BIND(){return this.getToken(s.BIND,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}EQ(){return this.getToken(s.EQ,0)}usageBody(){return this.getRuleContext(0,Kt)}BINDING(){return this.getToken(s.BINDING,0)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_bindingConnectorAsUsage}enterRule(e){e.enterBindingConnectorAsUsage&&e.enterBindingConnectorAsUsage(this)}exitRule(e){e.exitBindingConnectorAsUsage&&e.exitBindingConnectorAsUsage(this)}accept(e){return e.visitBindingConnectorAsUsage?e.visitBindingConnectorAsUsage(this):e.visitChildren(this)}},gs=class extends u{constructor(e,t){super(e,t)}usagePrefix(){return this.getRuleContext(0,Ji)}FIRST(){return this.getToken(s.FIRST,0)}connectorEndMember(e){return e===void 0?this.getRuleContexts(Ve):this.getRuleContext(e,Ve)}THEN(){return this.getToken(s.THEN,0)}usageBody(){return this.getRuleContext(0,Kt)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_successionAsUsage}enterRule(e){e.enterSuccessionAsUsage&&e.enterSuccessionAsUsage(this)}exitRule(e){e.exitSuccessionAsUsage&&e.exitSuccessionAsUsage(this)}accept(e){return e.visitSuccessionAsUsage?e.visitSuccessionAsUsage(this):e.visitChildren(this)}},y0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}INTERFACE(){return this.getToken(s.INTERFACE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}interfaceBody(){return this.getRuleContext(0,ao)}get ruleIndex(){return s.RULE_interfaceDefinition}enterRule(e){e.enterInterfaceDefinition&&e.enterInterfaceDefinition(this)}exitRule(e){e.exitInterfaceDefinition&&e.exitInterfaceDefinition(this)}accept(e){return e.visitInterfaceDefinition?e.visitInterfaceDefinition(this):e.visitChildren(this)}},ao=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}interfaceBodyItem(e){return e===void 0?this.getRuleContexts(oo):this.getRuleContext(e,oo)}get ruleIndex(){return s.RULE_interfaceBody}enterRule(e){e.enterInterfaceBody&&e.enterInterfaceBody(this)}exitRule(e){e.exitInterfaceBody&&e.exitInterfaceBody(this)}accept(e){return e.visitInterfaceBody?e.visitInterfaceBody(this):e.visitChildren(this)}},oo=class extends u{constructor(e,t){super(e,t)}definitionMember(){return this.getRuleContext(0,$i)}variantUsageMember(){return this.getRuleContext(0,ja)}interfaceNonOccurrenceUsageMember(){return this.getRuleContext(0,C0)}interfaceOccurrenceUsageMember(){return this.getRuleContext(0,E0)}sourceSuccessionMember(){return this.getRuleContext(0,bi)}aliasMember(){return this.getRuleContext(0,ur)}importRule(){return this.getRuleContext(0,zt)}get ruleIndex(){return s.RULE_interfaceBodyItem}enterRule(e){e.enterInterfaceBodyItem&&e.enterInterfaceBodyItem(this)}exitRule(e){e.exitInterfaceBodyItem&&e.exitInterfaceBodyItem(this)}accept(e){return e.visitInterfaceBodyItem?e.visitInterfaceBodyItem(this):e.visitChildren(this)}},C0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}interfaceNonOccurrenceUsageElement(){return this.getRuleContext(0,v0)}get ruleIndex(){return s.RULE_interfaceNonOccurrenceUsageMember}enterRule(e){e.enterInterfaceNonOccurrenceUsageMember&&e.enterInterfaceNonOccurrenceUsageMember(this)}exitRule(e){e.exitInterfaceNonOccurrenceUsageMember&&e.exitInterfaceNonOccurrenceUsageMember(this)}accept(e){return e.visitInterfaceNonOccurrenceUsageMember?e.visitInterfaceNonOccurrenceUsageMember(this):e.visitChildren(this)}},v0=class extends u{constructor(e,t){super(e,t)}referenceUsage(){return this.getRuleContext(0,hs)}attributeUsage(){return this.getRuleContext(0,ms)}enumerationUsage(){return this.getRuleContext(0,Qa)}bindingConnectorAsUsage(){return this.getRuleContext(0,bs)}successionAsUsage(){return this.getRuleContext(0,gs)}get ruleIndex(){return s.RULE_interfaceNonOccurrenceUsageElement}enterRule(e){e.enterInterfaceNonOccurrenceUsageElement&&e.enterInterfaceNonOccurrenceUsageElement(this)}exitRule(e){e.exitInterfaceNonOccurrenceUsageElement&&e.exitInterfaceNonOccurrenceUsageElement(this)}accept(e){return e.visitInterfaceNonOccurrenceUsageElement?e.visitInterfaceNonOccurrenceUsageElement(this):e.visitChildren(this)}},E0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}interfaceOccurrenceUsageElement(){return this.getRuleContext(0,L0)}get ruleIndex(){return s.RULE_interfaceOccurrenceUsageMember}enterRule(e){e.enterInterfaceOccurrenceUsageMember&&e.enterInterfaceOccurrenceUsageMember(this)}exitRule(e){e.exitInterfaceOccurrenceUsageMember&&e.exitInterfaceOccurrenceUsageMember(this)}accept(e){return e.visitInterfaceOccurrenceUsageMember?e.visitInterfaceOccurrenceUsageMember(this):e.visitChildren(this)}},L0=class extends u{constructor(e,t){super(e,t)}defaultInterfaceEnd(){return this.getRuleContext(0,S0)}structureUsageElement(){return this.getRuleContext(0,fs)}behaviorUsageElement(){return this.getRuleContext(0,Xi)}get ruleIndex(){return s.RULE_interfaceOccurrenceUsageElement}enterRule(e){e.enterInterfaceOccurrenceUsageElement&&e.enterInterfaceOccurrenceUsageElement(this)}exitRule(e){e.exitInterfaceOccurrenceUsageElement&&e.exitInterfaceOccurrenceUsageElement(this)}accept(e){return e.visitInterfaceOccurrenceUsageElement?e.visitInterfaceOccurrenceUsageElement(this):e.visitChildren(this)}},S0=class extends u{constructor(e,t){super(e,t)}END(){return this.getToken(s.END,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_defaultInterfaceEnd}enterRule(e){e.enterDefaultInterfaceEnd&&e.enterDefaultInterfaceEnd(this)}exitRule(e){e.exitDefaultInterfaceEnd&&e.exitDefaultInterfaceEnd(this)}accept(e){return e.visitDefaultInterfaceEnd?e.visitDefaultInterfaceEnd(this):e.visitChildren(this)}},lo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}INTERFACE(){return this.getToken(s.INTERFACE,0)}interfaceUsageDeclaration(){return this.getRuleContext(0,P0)}interfaceBody(){return this.getRuleContext(0,ao)}get ruleIndex(){return s.RULE_interfaceUsage}enterRule(e){e.enterInterfaceUsage&&e.enterInterfaceUsage(this)}exitRule(e){e.exitInterfaceUsage&&e.exitInterfaceUsage(this)}accept(e){return e.visitInterfaceUsage?e.visitInterfaceUsage(this):e.visitChildren(this)}},P0=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}CONNECT(){return this.getToken(s.CONNECT,0)}interfacePart(){return this.getRuleContext(0,T0)}get ruleIndex(){return s.RULE_interfaceUsageDeclaration}enterRule(e){e.enterInterfaceUsageDeclaration&&e.enterInterfaceUsageDeclaration(this)}exitRule(e){e.exitInterfaceUsageDeclaration&&e.exitInterfaceUsageDeclaration(this)}accept(e){return e.visitInterfaceUsageDeclaration?e.visitInterfaceUsageDeclaration(this):e.visitChildren(this)}},T0=class extends u{constructor(e,t){super(e,t)}binaryInterfacePart(){return this.getRuleContext(0,A0)}naryInterfacePart(){return this.getRuleContext(0,M0)}get ruleIndex(){return s.RULE_interfacePart}enterRule(e){e.enterInterfacePart&&e.enterInterfacePart(this)}exitRule(e){e.exitInterfacePart&&e.exitInterfacePart(this)}accept(e){return e.visitInterfacePart?e.visitInterfacePart(this):e.visitChildren(this)}},A0=class extends u{constructor(e,t){super(e,t)}interfaceEndMember(e){return e===void 0?this.getRuleContexts(Zi):this.getRuleContext(e,Zi)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_binaryInterfacePart}enterRule(e){e.enterBinaryInterfacePart&&e.enterBinaryInterfacePart(this)}exitRule(e){e.exitBinaryInterfacePart&&e.exitBinaryInterfacePart(this)}accept(e){return e.visitBinaryInterfacePart?e.visitBinaryInterfacePart(this):e.visitChildren(this)}},M0=class extends u{constructor(e,t){super(e,t)}LPAREN(){return this.getToken(s.LPAREN,0)}interfaceEndMember(e){return e===void 0?this.getRuleContexts(Zi):this.getRuleContext(e,Zi)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}RPAREN(){return this.getToken(s.RPAREN,0)}get ruleIndex(){return s.RULE_naryInterfacePart}enterRule(e){e.enterNaryInterfacePart&&e.enterNaryInterfacePart(this)}exitRule(e){e.exitNaryInterfacePart&&e.exitNaryInterfacePart(this)}accept(e){return e.visitNaryInterfacePart?e.visitNaryInterfacePart(this):e.visitChildren(this)}},Zi=class extends u{constructor(e,t){super(e,t)}interfaceEnd(){return this.getRuleContext(0,N0)}get ruleIndex(){return s.RULE_interfaceEndMember}enterRule(e){e.enterInterfaceEndMember&&e.enterInterfaceEndMember(this)}exitRule(e){e.exitInterfaceEndMember&&e.exitInterfaceEndMember(this)}accept(e){return e.visitInterfaceEndMember?e.visitInterfaceEndMember(this):e.visitChildren(this)}},N0=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}ownedCrossMultiplicityMember(){return this.getRuleContext(0,Ta)}name(){return this.getRuleContext(0,xt)}COLON_COLON_GT(){return this.getToken(s.COLON_COLON_GT,0)}REFERENCES(){return this.getToken(s.REFERENCES,0)}get ruleIndex(){return s.RULE_interfaceEnd}enterRule(e){e.enterInterfaceEnd&&e.enterInterfaceEnd(this)}exitRule(e){e.exitInterfaceEnd&&e.exitInterfaceEnd(this)}accept(e){return e.visitInterfaceEnd?e.visitInterfaceEnd(this):e.visitChildren(this)}},U0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}ALLOCATION(){return this.getToken(s.ALLOCATION,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_allocationDefinition}enterRule(e){e.enterAllocationDefinition&&e.enterAllocationDefinition(this)}exitRule(e){e.exitAllocationDefinition&&e.exitAllocationDefinition(this)}accept(e){return e.visitAllocationDefinition?e.visitAllocationDefinition(this):e.visitChildren(this)}},uo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}allocationUsageDeclaration(){return this.getRuleContext(0,w0)}usageBody(){return this.getRuleContext(0,Kt)}get ruleIndex(){return s.RULE_allocationUsage}enterRule(e){e.enterAllocationUsage&&e.enterAllocationUsage(this)}exitRule(e){e.exitAllocationUsage&&e.exitAllocationUsage(this)}accept(e){return e.visitAllocationUsage?e.visitAllocationUsage(this):e.visitChildren(this)}},w0=class extends u{constructor(e,t){super(e,t)}ALLOCATION(){return this.getToken(s.ALLOCATION,0)}usageDeclaration(){return this.getRuleContext(0,be)}ALLOCATE(){return this.getToken(s.ALLOCATE,0)}connectorPart(){return this.getRuleContext(0,so)}get ruleIndex(){return s.RULE_allocationUsageDeclaration}enterRule(e){e.enterAllocationUsageDeclaration&&e.enterAllocationUsageDeclaration(this)}exitRule(e){e.exitAllocationUsageDeclaration&&e.exitAllocationUsageDeclaration(this)}accept(e){return e.visitAllocationUsageDeclaration?e.visitAllocationUsageDeclaration(this):e.visitChildren(this)}},D0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}FLOW(){return this.getToken(s.FLOW,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_flowDefinition}enterRule(e){e.enterFlowDefinition&&e.enterFlowDefinition(this)}exitRule(e){e.exitFlowDefinition&&e.exitFlowDefinition(this)}accept(e){return e.visitFlowDefinition?e.visitFlowDefinition(this):e.visitChildren(this)}},co=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}MESSAGE(){return this.getToken(s.MESSAGE,0)}messageDeclaration(){return this.getRuleContext(0,O0)}definitionBody(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_message}enterRule(e){e.enterMessage&&e.enterMessage(this)}exitRule(e){e.exitMessage&&e.exitMessage(this)}accept(e){return e.visitMessage?e.visitMessage(this):e.visitChildren(this)}},O0=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}OF(){return this.getToken(s.OF,0)}flowPayloadFeatureMember(){return this.getRuleContext(0,mo)}FROM(){return this.getToken(s.FROM,0)}messageEventMember(e){return e===void 0?this.getRuleContexts(ho):this.getRuleContext(e,ho)}TO(){return this.getToken(s.TO,0)}get ruleIndex(){return s.RULE_messageDeclaration}enterRule(e){e.enterMessageDeclaration&&e.enterMessageDeclaration(this)}exitRule(e){e.exitMessageDeclaration&&e.exitMessageDeclaration(this)}accept(e){return e.visitMessageDeclaration?e.visitMessageDeclaration(this):e.visitChildren(this)}},ho=class extends u{constructor(e,t){super(e,t)}messageEvent(){return this.getRuleContext(0,I0)}get ruleIndex(){return s.RULE_messageEventMember}enterRule(e){e.enterMessageEventMember&&e.enterMessageEventMember(this)}exitRule(e){e.exitMessageEventMember&&e.exitMessageEventMember(this)}accept(e){return e.visitMessageEventMember?e.visitMessageEventMember(this):e.visitChildren(this)}},I0=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}get ruleIndex(){return s.RULE_messageEvent}enterRule(e){e.enterMessageEvent&&e.enterMessageEvent(this)}exitRule(e){e.exitMessageEvent&&e.exitMessageEvent(this)}accept(e){return e.visitMessageEvent?e.visitMessageEvent(this):e.visitChildren(this)}},po=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Wi)}definitionBody(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_flowUsage}enterRule(e){e.enterFlowUsage&&e.enterFlowUsage(this)}exitRule(e){e.exitFlowUsage&&e.exitFlowUsage(this)}accept(e){return e.visitFlowUsage?e.visitFlowUsage(this):e.visitChildren(this)}},fo=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}FLOW(){return this.getToken(s.FLOW,0)}flowDeclaration(){return this.getRuleContext(0,Wi)}definitionBody(){return this.getRuleContext(0,fi)}get ruleIndex(){return s.RULE_successionFlowUsage}enterRule(e){e.enterSuccessionFlowUsage&&e.enterSuccessionFlowUsage(this)}exitRule(e){e.exitSuccessionFlowUsage&&e.exitSuccessionFlowUsage(this)}accept(e){return e.visitSuccessionFlowUsage?e.visitSuccessionFlowUsage(this):e.visitChildren(this)}},mo=class extends u{constructor(e,t){super(e,t)}flowPayloadFeature(){return this.getRuleContext(0,k0)}get ruleIndex(){return s.RULE_flowPayloadFeatureMember}enterRule(e){e.enterFlowPayloadFeatureMember&&e.enterFlowPayloadFeatureMember(this)}exitRule(e){e.exitFlowPayloadFeatureMember&&e.exitFlowPayloadFeatureMember(this)}accept(e){return e.visitFlowPayloadFeatureMember?e.visitFlowPayloadFeatureMember(this):e.visitChildren(this)}},k0=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,as)}get ruleIndex(){return s.RULE_flowPayloadFeature}enterRule(e){e.enterFlowPayloadFeature&&e.enterFlowPayloadFeature(this)}exitRule(e){e.exitFlowPayloadFeature&&e.exitFlowPayloadFeature(this)}accept(e){return e.visitFlowPayloadFeature?e.visitFlowPayloadFeature(this):e.visitChildren(this)}},a4=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}featureChainPrefix(){return this.getRuleContext(0,F0)}get ruleIndex(){return s.RULE_flowEndSubsetting}enterRule(e){e.enterFlowEndSubsetting&&e.enterFlowEndSubsetting(this)}exitRule(e){e.exitFlowEndSubsetting&&e.exitFlowEndSubsetting(this)}accept(e){return e.visitFlowEndSubsetting?e.visitFlowEndSubsetting(this):e.visitChildren(this)}},F0=class extends u{constructor(e,t){super(e,t)}ownedFeatureChaining(e){return e===void 0?this.getRuleContexts(Br):this.getRuleContext(e,Br)}DOT(e){return e===void 0?this.getTokens(s.DOT):this.getToken(s.DOT,e)}get ruleIndex(){return s.RULE_featureChainPrefix}enterRule(e){e.enterFeatureChainPrefix&&e.enterFeatureChainPrefix(this)}exitRule(e){e.exitFeatureChainPrefix&&e.exitFeatureChainPrefix(this)}accept(e){return e.visitFeatureChainPrefix?e.visitFeatureChainPrefix(this):e.visitChildren(this)}},H0=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}ACTION(){return this.getToken(s.ACTION,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_actionDefinition}enterRule(e){e.enterActionDefinition&&e.enterActionDefinition(this)}exitRule(e){e.exitActionDefinition&&e.exitActionDefinition(this)}accept(e){return e.visitActionDefinition?e.visitActionDefinition(this):e.visitChildren(this)}},ze=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}get ruleIndex(){return s.RULE_actionBody}enterRule(e){e.enterActionBody&&e.enterActionBody(this)}exitRule(e){e.exitActionBody&&e.exitActionBody(this)}accept(e){return e.visitActionBody?e.visitActionBody(this):e.visitChildren(this)}},ot=class extends u{constructor(e,t){super(e,t)}nonBehaviorBodyItem(){return this.getRuleContext(0,xo)}initialNodeMember(){return this.getRuleContext(0,_0)}actionTargetSuccessionMember(e){return e===void 0?this.getRuleContexts(bo):this.getRuleContext(e,bo)}actionBehaviorMember(){return this.getRuleContext(0,B0)}sourceSuccessionMember(){return this.getRuleContext(0,bi)}guardedSuccessionMember(){return this.getRuleContext(0,q0)}get ruleIndex(){return s.RULE_actionBodyItem}enterRule(e){e.enterActionBodyItem&&e.enterActionBodyItem(this)}exitRule(e){e.exitActionBodyItem&&e.exitActionBodyItem(this)}accept(e){return e.visitActionBodyItem?e.visitActionBodyItem(this):e.visitChildren(this)}},xo=class extends u{constructor(e,t){super(e,t)}importRule(){return this.getRuleContext(0,zt)}aliasMember(){return this.getRuleContext(0,ur)}definitionMember(){return this.getRuleContext(0,$i)}variantUsageMember(){return this.getRuleContext(0,ja)}nonOccurrenceUsageMember(){return this.getRuleContext(0,J1)}structureUsageMember(){return this.getRuleContext(0,X1)}sourceSuccessionMember(){return this.getRuleContext(0,bi)}get ruleIndex(){return s.RULE_nonBehaviorBodyItem}enterRule(e){e.enterNonBehaviorBodyItem&&e.enterNonBehaviorBodyItem(this)}exitRule(e){e.exitNonBehaviorBodyItem&&e.exitNonBehaviorBodyItem(this)}accept(e){return e.visitNonBehaviorBodyItem?e.visitNonBehaviorBodyItem(this):e.visitChildren(this)}},B0=class extends u{constructor(e,t){super(e,t)}behaviorUsageMember(){return this.getRuleContext(0,Ga)}actionNodeMember(){return this.getRuleContext(0,V0)}get ruleIndex(){return s.RULE_actionBehaviorMember}enterRule(e){e.enterActionBehaviorMember&&e.enterActionBehaviorMember(this)}exitRule(e){e.exitActionBehaviorMember&&e.exitActionBehaviorMember(this)}accept(e){return e.visitActionBehaviorMember?e.visitActionBehaviorMember(this):e.visitChildren(this)}},_0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}FIRST(){return this.getToken(s.FIRST,0)}qualifiedName(){return this.getRuleContext(0,B)}relationshipBody(){return this.getRuleContext(0,Ze)}get ruleIndex(){return s.RULE_initialNodeMember}enterRule(e){e.enterInitialNodeMember&&e.enterInitialNodeMember(this)}exitRule(e){e.exitInitialNodeMember&&e.exitInitialNodeMember(this)}accept(e){return e.visitInitialNodeMember?e.visitInitialNodeMember(this):e.visitChildren(this)}},V0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}actionNode(){return this.getRuleContext(0,W0)}get ruleIndex(){return s.RULE_actionNodeMember}enterRule(e){e.enterActionNodeMember&&e.enterActionNodeMember(this)}exitRule(e){e.exitActionNodeMember&&e.exitActionNodeMember(this)}accept(e){return e.visitActionNodeMember?e.visitActionNodeMember(this):e.visitChildren(this)}},bo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}actionTargetSuccession(){return this.getRuleContext(0,xh)}get ruleIndex(){return s.RULE_actionTargetSuccessionMember}enterRule(e){e.enterActionTargetSuccessionMember&&e.enterActionTargetSuccessionMember(this)}exitRule(e){e.exitActionTargetSuccessionMember&&e.exitActionTargetSuccessionMember(this)}accept(e){return e.visitActionTargetSuccessionMember?e.visitActionTargetSuccessionMember(this):e.visitChildren(this)}},q0=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}guardedSuccession(){return this.getRuleContext(0,Rh)}get ruleIndex(){return s.RULE_guardedSuccessionMember}enterRule(e){e.enterGuardedSuccessionMember&&e.enterGuardedSuccessionMember(this)}exitRule(e){e.exitGuardedSuccessionMember&&e.exitGuardedSuccessionMember(this)}accept(e){return e.visitGuardedSuccessionMember?e.visitGuardedSuccessionMember(this):e.visitChildren(this)}},j0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}ACTION(){return this.getToken(s.ACTION,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_actionUsage}enterRule(e){e.enterActionUsage&&e.enterActionUsage(this)}exitRule(e){e.exitActionUsage&&e.exitActionUsage(this)}accept(e){return e.visitActionUsage?e.visitActionUsage(this):e.visitChildren(this)}},en=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_actionUsageDeclaration}enterRule(e){e.enterActionUsageDeclaration&&e.enterActionUsageDeclaration(this)}exitRule(e){e.exitActionUsageDeclaration&&e.exitActionUsageDeclaration(this)}accept(e){return e.visitActionUsageDeclaration?e.visitActionUsageDeclaration(this):e.visitChildren(this)}},G0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}PERFORM(){return this.getToken(s.PERFORM,0)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_performActionUsage}enterRule(e){e.enterPerformActionUsage&&e.enterPerformActionUsage(this)}exitRule(e){e.exitPerformActionUsage&&e.exitPerformActionUsage(this)}accept(e){return e.visitPerformActionUsage?e.visitPerformActionUsage(this):e.visitChildren(this)}},Rs=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}ACTION(){return this.getToken(s.ACTION,0)}valuePart(){return this.getRuleContext(0,Ue)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_performActionUsageDeclaration}enterRule(e){e.enterPerformActionUsageDeclaration&&e.enterPerformActionUsageDeclaration(this)}exitRule(e){e.exitPerformActionUsageDeclaration&&e.exitPerformActionUsageDeclaration(this)}accept(e){return e.visitPerformActionUsageDeclaration?e.visitPerformActionUsageDeclaration(this):e.visitChildren(this)}},W0=class extends u{constructor(e,t){super(e,t)}controlNode(){return this.getRuleContext(0,z0)}sendNode(){return this.getRuleContext(0,ih)}acceptNode(){return this.getRuleContext(0,J0)}assignmentNode(){return this.getRuleContext(0,ah)}terminateNode(){return this.getRuleContext(0,ch)}ifNode(){return this.getRuleContext(0,Co)}whileLoopNode(){return this.getRuleContext(0,ph)}forLoopNode(){return this.getRuleContext(0,fh)}get ruleIndex(){return s.RULE_actionNode}enterRule(e){e.enterActionNode&&e.enterActionNode(this)}exitRule(e){e.exitActionNode&&e.exitActionNode(this)}accept(e){return e.visitActionNode?e.visitActionNode(this):e.visitChildren(this)}},Vr=class extends u{constructor(e,t){super(e,t)}ACTION(){return this.getToken(s.ACTION,0)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_actionNodeUsageDeclaration}enterRule(e){e.enterActionNodeUsageDeclaration&&e.enterActionNodeUsageDeclaration(this)}exitRule(e){e.exitActionNodeUsageDeclaration&&e.exitActionNodeUsageDeclaration(this)}accept(e){return e.visitActionNodeUsageDeclaration?e.visitActionNodeUsageDeclaration(this):e.visitChildren(this)}},ys=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}get ruleIndex(){return s.RULE_actionNodePrefix}enterRule(e){e.enterActionNodePrefix&&e.enterActionNodePrefix(this)}exitRule(e){e.exitActionNodePrefix&&e.exitActionNodePrefix(this)}accept(e){return e.visitActionNodePrefix?e.visitActionNodePrefix(this):e.visitChildren(this)}},z0=class extends u{constructor(e,t){super(e,t)}mergeNode(){return this.getRuleContext(0,K0)}decisionNode(){return this.getRuleContext(0,Q0)}joinNode(){return this.getRuleContext(0,$0)}forkNode(){return this.getRuleContext(0,Y0)}get ruleIndex(){return s.RULE_controlNode}enterRule(e){e.enterControlNode&&e.enterControlNode(this)}exitRule(e){e.exitControlNode&&e.exitControlNode(this)}accept(e){return e.visitControlNode?e.visitControlNode(this):e.visitChildren(this)}},tn=class extends u{constructor(e,t){super(e,t)}refPrefix(){return this.getRuleContext(0,Yi)}INDIVIDUAL(){return this.getToken(s.INDIVIDUAL,0)}portionKind(){return this.getRuleContext(0,xs)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_controlNodePrefix}enterRule(e){e.enterControlNodePrefix&&e.enterControlNodePrefix(this)}exitRule(e){e.exitControlNodePrefix&&e.exitControlNodePrefix(this)}accept(e){return e.visitControlNodePrefix?e.visitControlNodePrefix(this):e.visitChildren(this)}},K0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}MERGE(){return this.getToken(s.MERGE,0)}actionBody(){return this.getRuleContext(0,ze)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_mergeNode}enterRule(e){e.enterMergeNode&&e.enterMergeNode(this)}exitRule(e){e.exitMergeNode&&e.exitMergeNode(this)}accept(e){return e.visitMergeNode?e.visitMergeNode(this):e.visitChildren(this)}},Q0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}DECIDE(){return this.getToken(s.DECIDE,0)}actionBody(){return this.getRuleContext(0,ze)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_decisionNode}enterRule(e){e.enterDecisionNode&&e.enterDecisionNode(this)}exitRule(e){e.exitDecisionNode&&e.exitDecisionNode(this)}accept(e){return e.visitDecisionNode?e.visitDecisionNode(this):e.visitChildren(this)}},$0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}JOIN(){return this.getToken(s.JOIN,0)}actionBody(){return this.getRuleContext(0,ze)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_joinNode}enterRule(e){e.enterJoinNode&&e.enterJoinNode(this)}exitRule(e){e.exitJoinNode&&e.exitJoinNode(this)}accept(e){return e.visitJoinNode?e.visitJoinNode(this):e.visitChildren(this)}},Y0=class extends u{constructor(e,t){super(e,t)}controlNodePrefix(){return this.getRuleContext(0,tn)}FORK(){return this.getToken(s.FORK,0)}actionBody(){return this.getRuleContext(0,ze)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_forkNode}enterRule(e){e.enterForkNode&&e.enterForkNode(this)}exitRule(e){e.exitForkNode&&e.exitForkNode(this)}accept(e){return e.visitForkNode?e.visitForkNode(this):e.visitChildren(this)}},J0=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}acceptNodeDeclaration(){return this.getRuleContext(0,Cs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_acceptNode}enterRule(e){e.enterAcceptNode&&e.enterAcceptNode(this)}exitRule(e){e.exitAcceptNode&&e.exitAcceptNode(this)}accept(e){return e.visitAcceptNode?e.visitAcceptNode(this):e.visitChildren(this)}},Cs=class extends u{constructor(e,t){super(e,t)}ACCEPT(){return this.getToken(s.ACCEPT,0)}acceptParameterPart(){return this.getRuleContext(0,go)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}get ruleIndex(){return s.RULE_acceptNodeDeclaration}enterRule(e){e.enterAcceptNodeDeclaration&&e.enterAcceptNodeDeclaration(this)}exitRule(e){e.exitAcceptNodeDeclaration&&e.exitAcceptNodeDeclaration(this)}accept(e){return e.visitAcceptNodeDeclaration?e.visitAcceptNodeDeclaration(this):e.visitChildren(this)}},go=class extends u{constructor(e,t){super(e,t)}payloadParameterMember(){return this.getRuleContext(0,X0)}VIA(){return this.getToken(s.VIA,0)}nodeParameterMember(){return this.getRuleContext(0,hr)}get ruleIndex(){return s.RULE_acceptParameterPart}enterRule(e){e.enterAcceptParameterPart&&e.enterAcceptParameterPart(this)}exitRule(e){e.exitAcceptParameterPart&&e.exitAcceptParameterPart(this)}accept(e){return e.visitAcceptParameterPart?e.visitAcceptParameterPart(this):e.visitChildren(this)}},X0=class extends u{constructor(e,t){super(e,t)}payloadParameter(){return this.getRuleContext(0,Z0)}get ruleIndex(){return s.RULE_payloadParameterMember}enterRule(e){e.enterPayloadParameterMember&&e.enterPayloadParameterMember(this)}exitRule(e){e.exitPayloadParameterMember&&e.exitPayloadParameterMember(this)}accept(e){return e.visitPayloadParameterMember?e.visitPayloadParameterMember(this):e.visitChildren(this)}},Z0=class extends u{constructor(e,t){super(e,t)}payloadFeature(){return this.getRuleContext(0,as)}triggerValuePart(){return this.getRuleContext(0,eh)}identification(){return this.getRuleContext(0,ve)}payloadFeatureSpecializationPart(){return this.getRuleContext(0,Ma)}get ruleIndex(){return s.RULE_payloadParameter}enterRule(e){e.enterPayloadParameter&&e.enterPayloadParameter(this)}exitRule(e){e.exitPayloadParameter&&e.exitPayloadParameter(this)}accept(e){return e.visitPayloadParameter?e.visitPayloadParameter(this):e.visitChildren(this)}},eh=class extends u{constructor(e,t){super(e,t)}triggerFeatureValue(){return this.getRuleContext(0,th)}get ruleIndex(){return s.RULE_triggerValuePart}enterRule(e){e.enterTriggerValuePart&&e.enterTriggerValuePart(this)}exitRule(e){e.exitTriggerValuePart&&e.exitTriggerValuePart(this)}accept(e){return e.visitTriggerValuePart?e.visitTriggerValuePart(this):e.visitChildren(this)}},th=class extends u{constructor(e,t){super(e,t)}triggerExpression(){return this.getRuleContext(0,rh)}get ruleIndex(){return s.RULE_triggerFeatureValue}enterRule(e){e.enterTriggerFeatureValue&&e.enterTriggerFeatureValue(this)}exitRule(e){e.exitTriggerFeatureValue&&e.exitTriggerFeatureValue(this)}accept(e){return e.visitTriggerFeatureValue?e.visitTriggerFeatureValue(this):e.visitChildren(this)}},rh=class extends u{constructor(e,t){super(e,t)}argumentMember(){return this.getRuleContext(0,Zu)}AT(){return this.getToken(s.AT,0)}AFTER(){return this.getToken(s.AFTER,0)}WHEN(){return this.getToken(s.WHEN,0)}argumentExpressionMember(){return this.getRuleContext(0,ec)}get ruleIndex(){return s.RULE_triggerExpression}enterRule(e){e.enterTriggerExpression&&e.enterTriggerExpression(this)}exitRule(e){e.exitTriggerExpression&&e.exitTriggerExpression(this)}accept(e){return e.visitTriggerExpression?e.visitTriggerExpression(this):e.visitChildren(this)}},ih=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}SEND(){return this.getToken(s.SEND,0)}actionBody(){return this.getRuleContext(0,ze)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}actionUsageDeclaration(){return this.getRuleContext(0,en)}nodeParameterMember(){return this.getRuleContext(0,hr)}emptyParameterMember(){return this.getRuleContext(0,Er)}senderReceiverPart(){return this.getRuleContext(0,yo)}get ruleIndex(){return s.RULE_sendNode}enterRule(e){e.enterSendNode&&e.enterSendNode(this)}exitRule(e){e.exitSendNode&&e.exitSendNode(this)}accept(e){return e.visitSendNode?e.visitSendNode(this):e.visitChildren(this)}},Ro=class extends u{constructor(e,t){super(e,t)}SEND(){return this.getToken(s.SEND,0)}nodeParameterMember(){return this.getRuleContext(0,hr)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}senderReceiverPart(){return this.getRuleContext(0,yo)}get ruleIndex(){return s.RULE_sendNodeDeclaration}enterRule(e){e.enterSendNodeDeclaration&&e.enterSendNodeDeclaration(this)}exitRule(e){e.exitSendNodeDeclaration&&e.exitSendNodeDeclaration(this)}accept(e){return e.visitSendNodeDeclaration?e.visitSendNodeDeclaration(this):e.visitChildren(this)}},yo=class extends u{constructor(e,t){super(e,t)}VIA(){return this.getToken(s.VIA,0)}nodeParameterMember(e){return e===void 0?this.getRuleContexts(hr):this.getRuleContext(e,hr)}TO(){return this.getToken(s.TO,0)}emptyParameterMember(){return this.getRuleContext(0,Er)}get ruleIndex(){return s.RULE_senderReceiverPart}enterRule(e){e.enterSenderReceiverPart&&e.enterSenderReceiverPart(this)}exitRule(e){e.exitSenderReceiverPart&&e.exitSenderReceiverPart(this)}accept(e){return e.visitSenderReceiverPart?e.visitSenderReceiverPart(this):e.visitChildren(this)}},hr=class extends u{constructor(e,t){super(e,t)}nodeParameter(){return this.getRuleContext(0,nh)}get ruleIndex(){return s.RULE_nodeParameterMember}enterRule(e){e.enterNodeParameterMember&&e.enterNodeParameterMember(this)}exitRule(e){e.exitNodeParameterMember&&e.exitNodeParameterMember(this)}accept(e){return e.visitNodeParameterMember?e.visitNodeParameterMember(this):e.visitChildren(this)}},nh=class extends u{constructor(e,t){super(e,t)}featureBinding(){return this.getRuleContext(0,sh)}get ruleIndex(){return s.RULE_nodeParameter}enterRule(e){e.enterNodeParameter&&e.enterNodeParameter(this)}exitRule(e){e.exitNodeParameter&&e.exitNodeParameter(this)}accept(e){return e.visitNodeParameter?e.visitNodeParameter(this):e.visitChildren(this)}},sh=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_featureBinding}enterRule(e){e.enterFeatureBinding&&e.enterFeatureBinding(this)}exitRule(e){e.exitFeatureBinding&&e.exitFeatureBinding(this)}accept(e){return e.visitFeatureBinding?e.visitFeatureBinding(this):e.visitChildren(this)}},Er=class extends u{constructor(e,t){super(e,t)}emptyUsage_(){return this.getRuleContext(0,Gd)}get ruleIndex(){return s.RULE_emptyParameterMember}enterRule(e){e.enterEmptyParameterMember&&e.enterEmptyParameterMember(this)}exitRule(e){e.exitEmptyParameterMember&&e.exitEmptyParameterMember(this)}accept(e){return e.visitEmptyParameterMember?e.visitEmptyParameterMember(this):e.visitChildren(this)}},ah=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}assignmentNodeDeclaration(){return this.getRuleContext(0,vs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_assignmentNode}enterRule(e){e.enterAssignmentNode&&e.enterAssignmentNode(this)}exitRule(e){e.exitAssignmentNode&&e.exitAssignmentNode(this)}accept(e){return e.visitAssignmentNode?e.visitAssignmentNode(this):e.visitChildren(this)}},vs=class extends u{constructor(e,t){super(e,t)}ASSIGN(){return this.getToken(s.ASSIGN,0)}assignmentTargetMember(){return this.getRuleContext(0,oh)}featureChainMember(){return this.getRuleContext(0,Gi)}COLON_EQ(){return this.getToken(s.COLON_EQ,0)}nodeParameterMember(){return this.getRuleContext(0,hr)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}get ruleIndex(){return s.RULE_assignmentNodeDeclaration}enterRule(e){e.enterAssignmentNodeDeclaration&&e.enterAssignmentNodeDeclaration(this)}exitRule(e){e.exitAssignmentNodeDeclaration&&e.exitAssignmentNodeDeclaration(this)}accept(e){return e.visitAssignmentNodeDeclaration?e.visitAssignmentNodeDeclaration(this):e.visitChildren(this)}},oh=class extends u{constructor(e,t){super(e,t)}assignmentTargetParameter(){return this.getRuleContext(0,lh)}get ruleIndex(){return s.RULE_assignmentTargetMember}enterRule(e){e.enterAssignmentTargetMember&&e.enterAssignmentTargetMember(this)}exitRule(e){e.exitAssignmentTargetMember&&e.exitAssignmentTargetMember(this)}accept(e){return e.visitAssignmentTargetMember?e.visitAssignmentTargetMember(this):e.visitChildren(this)}},lh=class extends u{constructor(e,t){super(e,t)}assignmentTargetBinding(){return this.getRuleContext(0,uh)}DOT(){return this.getToken(s.DOT,0)}get ruleIndex(){return s.RULE_assignmentTargetParameter}enterRule(e){e.enterAssignmentTargetParameter&&e.enterAssignmentTargetParameter(this)}exitRule(e){e.exitAssignmentTargetParameter&&e.exitAssignmentTargetParameter(this)}accept(e){return e.visitAssignmentTargetParameter?e.visitAssignmentTargetParameter(this):e.visitChildren(this)}},uh=class extends u{constructor(e,t){super(e,t)}nonFeatureChainPrimaryExpression(){return this.getRuleContext(0,zd)}get ruleIndex(){return s.RULE_assignmentTargetBinding}enterRule(e){e.enterAssignmentTargetBinding&&e.enterAssignmentTargetBinding(this)}exitRule(e){e.exitAssignmentTargetBinding&&e.exitAssignmentTargetBinding(this)}accept(e){return e.visitAssignmentTargetBinding?e.visitAssignmentTargetBinding(this):e.visitChildren(this)}},ch=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}TERMINATE(){return this.getToken(s.TERMINATE,0)}actionBody(){return this.getRuleContext(0,ze)}actionNodeUsageDeclaration(){return this.getRuleContext(0,Vr)}nodeParameterMember(){return this.getRuleContext(0,hr)}get ruleIndex(){return s.RULE_terminateNode}enterRule(e){e.enterTerminateNode&&e.enterTerminateNode(this)}exitRule(e){e.exitTerminateNode&&e.exitTerminateNode(this)}accept(e){return e.visitTerminateNode?e.visitTerminateNode(this):e.visitChildren(this)}},Co=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,ys)}IF(){return this.getToken(s.IF,0)}expressionParameterMember(){return this.getRuleContext(0,Es)}actionBodyParameterMember(e){return e===void 0?this.getRuleContexts(rn):this.getRuleContext(e,rn)}ELSE(){return this.getToken(s.ELSE,0)}ifNodeParameterMember(){return this.getRuleContext(0,dh)}get ruleIndex(){return s.RULE_ifNode}enterRule(e){e.enterIfNode&&e.enterIfNode(this)}exitRule(e){e.exitIfNode&&e.exitIfNode(this)}accept(e){return e.visitIfNode?e.visitIfNode(this):e.visitChildren(this)}},Es=class extends u{constructor(e,t){super(e,t)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_expressionParameterMember}enterRule(e){e.enterExpressionParameterMember&&e.enterExpressionParameterMember(this)}exitRule(e){e.exitExpressionParameterMember&&e.exitExpressionParameterMember(this)}accept(e){return e.visitExpressionParameterMember?e.visitExpressionParameterMember(this):e.visitChildren(this)}},rn=class extends u{constructor(e,t){super(e,t)}actionBodyParameter(){return this.getRuleContext(0,hh)}get ruleIndex(){return s.RULE_actionBodyParameterMember}enterRule(e){e.enterActionBodyParameterMember&&e.enterActionBodyParameterMember(this)}exitRule(e){e.exitActionBodyParameterMember&&e.exitActionBodyParameterMember(this)}accept(e){return e.visitActionBodyParameterMember?e.visitActionBodyParameterMember(this):e.visitChildren(this)}},hh=class extends u{constructor(e,t){super(e,t)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}ACTION(){return this.getToken(s.ACTION,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_actionBodyParameter}enterRule(e){e.enterActionBodyParameter&&e.enterActionBodyParameter(this)}exitRule(e){e.exitActionBodyParameter&&e.exitActionBodyParameter(this)}accept(e){return e.visitActionBodyParameter?e.visitActionBodyParameter(this):e.visitChildren(this)}},dh=class extends u{constructor(e,t){super(e,t)}ifNode(){return this.getRuleContext(0,Co)}get ruleIndex(){return s.RULE_ifNodeParameterMember}enterRule(e){e.enterIfNodeParameterMember&&e.enterIfNodeParameterMember(this)}exitRule(e){e.exitIfNodeParameterMember&&e.exitIfNodeParameterMember(this)}accept(e){return e.visitIfNodeParameterMember?e.visitIfNodeParameterMember(this):e.visitChildren(this)}},ph=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,ys)}actionBodyParameterMember(){return this.getRuleContext(0,rn)}WHILE(){return this.getToken(s.WHILE,0)}expressionParameterMember(e){return e===void 0?this.getRuleContexts(Es):this.getRuleContext(e,Es)}LOOP(){return this.getToken(s.LOOP,0)}emptyParameterMember(){return this.getRuleContext(0,Er)}UNTIL(){return this.getToken(s.UNTIL,0)}SEMI(){return this.getToken(s.SEMI,0)}get ruleIndex(){return s.RULE_whileLoopNode}enterRule(e){e.enterWhileLoopNode&&e.enterWhileLoopNode(this)}exitRule(e){e.exitWhileLoopNode&&e.exitWhileLoopNode(this)}accept(e){return e.visitWhileLoopNode?e.visitWhileLoopNode(this):e.visitChildren(this)}},fh=class extends u{constructor(e,t){super(e,t)}actionNodePrefix(){return this.getRuleContext(0,ys)}FOR(){return this.getToken(s.FOR,0)}forVariableDeclarationMember(){return this.getRuleContext(0,mh)}IN(){return this.getToken(s.IN,0)}nodeParameterMember(){return this.getRuleContext(0,hr)}actionBodyParameterMember(){return this.getRuleContext(0,rn)}get ruleIndex(){return s.RULE_forLoopNode}enterRule(e){e.enterForLoopNode&&e.enterForLoopNode(this)}exitRule(e){e.exitForLoopNode&&e.exitForLoopNode(this)}accept(e){return e.visitForLoopNode?e.visitForLoopNode(this):e.visitChildren(this)}},mh=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_forVariableDeclarationMember}enterRule(e){e.enterForVariableDeclarationMember&&e.enterForVariableDeclarationMember(this)}exitRule(e){e.exitForVariableDeclarationMember&&e.exitForVariableDeclarationMember(this)}accept(e){return e.visitForVariableDeclarationMember?e.visitForVariableDeclarationMember(this):e.visitChildren(this)}},o4=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_forVariableDeclaration}enterRule(e){e.enterForVariableDeclaration&&e.enterForVariableDeclaration(this)}exitRule(e){e.exitForVariableDeclaration&&e.exitForVariableDeclaration(this)}accept(e){return e.visitForVariableDeclaration?e.visitForVariableDeclaration(this):e.visitChildren(this)}},xh=class extends u{constructor(e,t){super(e,t)}usageBody(){return this.getRuleContext(0,Kt)}targetSuccession(){return this.getRuleContext(0,bh)}guardedTargetSuccession(){return this.getRuleContext(0,vo)}defaultTargetSuccession(){return this.getRuleContext(0,gh)}get ruleIndex(){return s.RULE_actionTargetSuccession}enterRule(e){e.enterActionTargetSuccession&&e.enterActionTargetSuccession(this)}exitRule(e){e.exitActionTargetSuccession&&e.exitActionTargetSuccession(this)}accept(e){return e.visitActionTargetSuccession?e.visitActionTargetSuccession(this):e.visitChildren(this)}},bh=class extends u{constructor(e,t){super(e,t)}sourceEndMember(){return this.getRuleContext(0,eo)}THEN(){return this.getToken(s.THEN,0)}connectorEndMember(){return this.getRuleContext(0,Ve)}get ruleIndex(){return s.RULE_targetSuccession}enterRule(e){e.enterTargetSuccession&&e.enterTargetSuccession(this)}exitRule(e){e.exitTargetSuccession&&e.exitTargetSuccession(this)}accept(e){return e.visitTargetSuccession?e.visitTargetSuccession(this):e.visitChildren(this)}},vo=class extends u{constructor(e,t){super(e,t)}guardExpressionMember(){return this.getRuleContext(0,sn)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}get ruleIndex(){return s.RULE_guardedTargetSuccession}enterRule(e){e.enterGuardedTargetSuccession&&e.enterGuardedTargetSuccession(this)}exitRule(e){e.exitGuardedTargetSuccession&&e.exitGuardedTargetSuccession(this)}accept(e){return e.visitGuardedTargetSuccession?e.visitGuardedTargetSuccession(this):e.visitChildren(this)}},gh=class extends u{constructor(e,t){super(e,t)}ELSE(){return this.getToken(s.ELSE,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}get ruleIndex(){return s.RULE_defaultTargetSuccession}enterRule(e){e.enterDefaultTargetSuccession&&e.enterDefaultTargetSuccession(this)}exitRule(e){e.exitDefaultTargetSuccession&&e.exitDefaultTargetSuccession(this)}accept(e){return e.visitDefaultTargetSuccession?e.visitDefaultTargetSuccession(this):e.visitChildren(this)}},Rh=class extends u{constructor(e,t){super(e,t)}FIRST(){return this.getToken(s.FIRST,0)}featureChainMember(){return this.getRuleContext(0,Gi)}guardExpressionMember(){return this.getRuleContext(0,sn)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}usageBody(){return this.getRuleContext(0,Kt)}SUCCESSION(){return this.getToken(s.SUCCESSION,0)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_guardedSuccession}enterRule(e){e.enterGuardedSuccession&&e.enterGuardedSuccession(this)}exitRule(e){e.exitGuardedSuccession&&e.exitGuardedSuccession(this)}accept(e){return e.visitGuardedSuccession?e.visitGuardedSuccession(this):e.visitChildren(this)}},yh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}STATE(){return this.getToken(s.STATE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}stateDefBody(){return this.getRuleContext(0,Ch)}get ruleIndex(){return s.RULE_stateDefinition}enterRule(e){e.enterStateDefinition&&e.enterStateDefinition(this)}exitRule(e){e.exitStateDefinition&&e.exitStateDefinition(this)}accept(e){return e.visitStateDefinition?e.visitStateDefinition(this):e.visitChildren(this)}},Ch=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}PARALLEL(){return this.getToken(s.PARALLEL,0)}stateBodyItem(e){return e===void 0?this.getRuleContexts(nn):this.getRuleContext(e,nn)}get ruleIndex(){return s.RULE_stateDefBody}enterRule(e){e.enterStateDefBody&&e.enterStateDefBody(this)}exitRule(e){e.exitStateDefBody&&e.exitStateDefBody(this)}accept(e){return e.visitStateDefBody?e.visitStateDefBody(this):e.visitChildren(this)}},nn=class extends u{constructor(e,t){super(e,t)}nonBehaviorBodyItem(){return this.getRuleContext(0,xo)}behaviorUsageMember(){return this.getRuleContext(0,Ga)}sourceSuccessionMember(){return this.getRuleContext(0,bi)}targetTransitionUsageMember(e){return e===void 0?this.getRuleContexts(Lo):this.getRuleContext(e,Lo)}transitionUsageMember(){return this.getRuleContext(0,Mh)}entryActionMember(){return this.getRuleContext(0,vh)}entryTransitionMember(e){return e===void 0?this.getRuleContexts(Eo):this.getRuleContext(e,Eo)}doActionMember(){return this.getRuleContext(0,Eh)}exitActionMember(){return this.getRuleContext(0,Lh)}get ruleIndex(){return s.RULE_stateBodyItem}enterRule(e){e.enterStateBodyItem&&e.enterStateBodyItem(this)}exitRule(e){e.exitStateBodyItem&&e.exitStateBodyItem(this)}accept(e){return e.visitStateBodyItem?e.visitStateBodyItem(this):e.visitChildren(this)}},vh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}ENTRY(){return this.getToken(s.ENTRY,0)}stateActionUsage(){return this.getRuleContext(0,Ls)}get ruleIndex(){return s.RULE_entryActionMember}enterRule(e){e.enterEntryActionMember&&e.enterEntryActionMember(this)}exitRule(e){e.exitEntryActionMember&&e.exitEntryActionMember(this)}accept(e){return e.visitEntryActionMember?e.visitEntryActionMember(this):e.visitChildren(this)}},Eh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}DO(){return this.getToken(s.DO,0)}stateActionUsage(){return this.getRuleContext(0,Ls)}get ruleIndex(){return s.RULE_doActionMember}enterRule(e){e.enterDoActionMember&&e.enterDoActionMember(this)}exitRule(e){e.exitDoActionMember&&e.exitDoActionMember(this)}accept(e){return e.visitDoActionMember?e.visitDoActionMember(this):e.visitChildren(this)}},Lh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}EXIT(){return this.getToken(s.EXIT,0)}stateActionUsage(){return this.getRuleContext(0,Ls)}get ruleIndex(){return s.RULE_exitActionMember}enterRule(e){e.enterExitActionMember&&e.enterExitActionMember(this)}exitRule(e){e.exitExitActionMember&&e.exitExitActionMember(this)}accept(e){return e.visitExitActionMember?e.visitExitActionMember(this):e.visitChildren(this)}},Eo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}SEMI(){return this.getToken(s.SEMI,0)}guardedTargetSuccession(){return this.getRuleContext(0,vo)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}get ruleIndex(){return s.RULE_entryTransitionMember}enterRule(e){e.enterEntryTransitionMember&&e.enterEntryTransitionMember(this)}exitRule(e){e.exitEntryTransitionMember&&e.exitEntryTransitionMember(this)}accept(e){return e.visitEntryTransitionMember?e.visitEntryTransitionMember(this):e.visitChildren(this)}},Ls=class extends u{constructor(e,t){super(e,t)}emptyActionUsage_(){return this.getRuleContext(0,Vo)}SEMI(){return this.getToken(s.SEMI,0)}statePerformActionUsage(){return this.getRuleContext(0,Sh)}stateAcceptActionUsage(){return this.getRuleContext(0,Ph)}stateSendActionUsage(){return this.getRuleContext(0,Th)}stateAssignmentActionUsage(){return this.getRuleContext(0,Ah)}get ruleIndex(){return s.RULE_stateActionUsage}enterRule(e){e.enterStateActionUsage&&e.enterStateActionUsage(this)}exitRule(e){e.exitStateActionUsage&&e.exitStateActionUsage(this)}accept(e){return e.visitStateActionUsage?e.visitStateActionUsage(this):e.visitChildren(this)}},Sh=class extends u{constructor(e,t){super(e,t)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_statePerformActionUsage}enterRule(e){e.enterStatePerformActionUsage&&e.enterStatePerformActionUsage(this)}exitRule(e){e.exitStatePerformActionUsage&&e.exitStatePerformActionUsage(this)}accept(e){return e.visitStatePerformActionUsage?e.visitStatePerformActionUsage(this):e.visitChildren(this)}},Ph=class extends u{constructor(e,t){super(e,t)}acceptNodeDeclaration(){return this.getRuleContext(0,Cs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_stateAcceptActionUsage}enterRule(e){e.enterStateAcceptActionUsage&&e.enterStateAcceptActionUsage(this)}exitRule(e){e.exitStateAcceptActionUsage&&e.exitStateAcceptActionUsage(this)}accept(e){return e.visitStateAcceptActionUsage?e.visitStateAcceptActionUsage(this):e.visitChildren(this)}},Th=class extends u{constructor(e,t){super(e,t)}sendNodeDeclaration(){return this.getRuleContext(0,Ro)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_stateSendActionUsage}enterRule(e){e.enterStateSendActionUsage&&e.enterStateSendActionUsage(this)}exitRule(e){e.exitStateSendActionUsage&&e.exitStateSendActionUsage(this)}accept(e){return e.visitStateSendActionUsage?e.visitStateSendActionUsage(this):e.visitChildren(this)}},Ah=class extends u{constructor(e,t){super(e,t)}assignmentNodeDeclaration(){return this.getRuleContext(0,vs)}actionBody(){return this.getRuleContext(0,ze)}get ruleIndex(){return s.RULE_stateAssignmentActionUsage}enterRule(e){e.enterStateAssignmentActionUsage&&e.enterStateAssignmentActionUsage(this)}exitRule(e){e.exitStateAssignmentActionUsage&&e.exitStateAssignmentActionUsage(this)}accept(e){return e.visitStateAssignmentActionUsage?e.visitStateAssignmentActionUsage(this):e.visitChildren(this)}},Mh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}transitionUsage(){return this.getRuleContext(0,wh)}get ruleIndex(){return s.RULE_transitionUsageMember}enterRule(e){e.enterTransitionUsageMember&&e.enterTransitionUsageMember(this)}exitRule(e){e.exitTransitionUsageMember&&e.exitTransitionUsageMember(this)}accept(e){return e.visitTransitionUsageMember?e.visitTransitionUsageMember(this):e.visitChildren(this)}},Lo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}targetTransitionUsage(){return this.getRuleContext(0,Dh)}get ruleIndex(){return s.RULE_targetTransitionUsageMember}enterRule(e){e.enterTargetTransitionUsageMember&&e.enterTargetTransitionUsageMember(this)}exitRule(e){e.exitTargetTransitionUsageMember&&e.exitTargetTransitionUsageMember(this)}accept(e){return e.visitTargetTransitionUsageMember?e.visitTargetTransitionUsageMember(this):e.visitChildren(this)}},Nh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}STATE(){return this.getToken(s.STATE,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}stateUsageBody(){return this.getRuleContext(0,So)}get ruleIndex(){return s.RULE_stateUsage}enterRule(e){e.enterStateUsage&&e.enterStateUsage(this)}exitRule(e){e.exitStateUsage&&e.exitStateUsage(this)}accept(e){return e.visitStateUsage?e.visitStateUsage(this):e.visitChildren(this)}},So=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}PARALLEL(){return this.getToken(s.PARALLEL,0)}stateBodyItem(e){return e===void 0?this.getRuleContexts(nn):this.getRuleContext(e,nn)}get ruleIndex(){return s.RULE_stateUsageBody}enterRule(e){e.enterStateUsageBody&&e.enterStateUsageBody(this)}exitRule(e){e.exitStateUsageBody&&e.exitStateUsageBody(this)}accept(e){return e.visitStateUsageBody?e.visitStateUsageBody(this):e.visitChildren(this)}},Uh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}EXHIBIT(){return this.getToken(s.EXHIBIT,0)}stateUsageBody(){return this.getRuleContext(0,So)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}STATE(){return this.getToken(s.STATE,0)}valuePart(){return this.getRuleContext(0,Ue)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_exhibitStateUsage}enterRule(e){e.enterExhibitStateUsage&&e.enterExhibitStateUsage(this)}exitRule(e){e.exitExhibitStateUsage&&e.exitExhibitStateUsage(this)}accept(e){return e.visitExhibitStateUsage?e.visitExhibitStateUsage(this):e.visitChildren(this)}},wh=class extends u{constructor(e,t){super(e,t)}TRANSITION(){return this.getToken(s.TRANSITION,0)}featureChainMember(){return this.getRuleContext(0,Gi)}emptyParameterMember(e){return e===void 0?this.getRuleContexts(Er):this.getRuleContext(e,Er)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}actionBody(){return this.getRuleContext(0,ze)}FIRST(){return this.getToken(s.FIRST,0)}triggerActionMember(){return this.getRuleContext(0,Po)}guardExpressionMember(){return this.getRuleContext(0,sn)}effectBehaviorMember(){return this.getRuleContext(0,To)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_transitionUsage}enterRule(e){e.enterTransitionUsage&&e.enterTransitionUsage(this)}exitRule(e){e.exitTransitionUsage&&e.exitTransitionUsage(this)}accept(e){return e.visitTransitionUsage?e.visitTransitionUsage(this):e.visitChildren(this)}},Dh=class extends u{constructor(e,t){super(e,t)}emptyParameterMember(e){return e===void 0?this.getRuleContexts(Er):this.getRuleContext(e,Er)}THEN(){return this.getToken(s.THEN,0)}transitionSuccessionMember(){return this.getRuleContext(0,qr)}actionBody(){return this.getRuleContext(0,ze)}TRANSITION(){return this.getToken(s.TRANSITION,0)}triggerActionMember(){return this.getRuleContext(0,Po)}guardExpressionMember(){return this.getRuleContext(0,sn)}effectBehaviorMember(){return this.getRuleContext(0,To)}get ruleIndex(){return s.RULE_targetTransitionUsage}enterRule(e){e.enterTargetTransitionUsage&&e.enterTargetTransitionUsage(this)}exitRule(e){e.exitTargetTransitionUsage&&e.exitTargetTransitionUsage(this)}accept(e){return e.visitTargetTransitionUsage?e.visitTargetTransitionUsage(this):e.visitChildren(this)}},Po=class extends u{constructor(e,t){super(e,t)}ACCEPT(){return this.getToken(s.ACCEPT,0)}triggerAction(){return this.getRuleContext(0,Oh)}get ruleIndex(){return s.RULE_triggerActionMember}enterRule(e){e.enterTriggerActionMember&&e.enterTriggerActionMember(this)}exitRule(e){e.exitTriggerActionMember&&e.exitTriggerActionMember(this)}accept(e){return e.visitTriggerActionMember?e.visitTriggerActionMember(this):e.visitChildren(this)}},Oh=class extends u{constructor(e,t){super(e,t)}acceptParameterPart(){return this.getRuleContext(0,go)}get ruleIndex(){return s.RULE_triggerAction}enterRule(e){e.enterTriggerAction&&e.enterTriggerAction(this)}exitRule(e){e.exitTriggerAction&&e.exitTriggerAction(this)}accept(e){return e.visitTriggerAction?e.visitTriggerAction(this):e.visitChildren(this)}},sn=class extends u{constructor(e,t){super(e,t)}IF(){return this.getToken(s.IF,0)}ownedExpression(){return this.getRuleContext(0,ae)}get ruleIndex(){return s.RULE_guardExpressionMember}enterRule(e){e.enterGuardExpressionMember&&e.enterGuardExpressionMember(this)}exitRule(e){e.exitGuardExpressionMember&&e.exitGuardExpressionMember(this)}accept(e){return e.visitGuardExpressionMember?e.visitGuardExpressionMember(this):e.visitChildren(this)}},To=class extends u{constructor(e,t){super(e,t)}DO(){return this.getToken(s.DO,0)}effectBehaviorUsage(){return this.getRuleContext(0,Ih)}get ruleIndex(){return s.RULE_effectBehaviorMember}enterRule(e){e.enterEffectBehaviorMember&&e.enterEffectBehaviorMember(this)}exitRule(e){e.exitEffectBehaviorMember&&e.exitEffectBehaviorMember(this)}accept(e){return e.visitEffectBehaviorMember?e.visitEffectBehaviorMember(this):e.visitChildren(this)}},Ih=class extends u{constructor(e,t){super(e,t)}emptyActionUsage_(){return this.getRuleContext(0,Vo)}transitionPerformActionUsage(){return this.getRuleContext(0,kh)}transitionAcceptActionUsage(){return this.getRuleContext(0,Fh)}transitionSendActionUsage(){return this.getRuleContext(0,Hh)}transitionAssignmentActionUsage(){return this.getRuleContext(0,Bh)}get ruleIndex(){return s.RULE_effectBehaviorUsage}enterRule(e){e.enterEffectBehaviorUsage&&e.enterEffectBehaviorUsage(this)}exitRule(e){e.exitEffectBehaviorUsage&&e.exitEffectBehaviorUsage(this)}accept(e){return e.visitEffectBehaviorUsage?e.visitEffectBehaviorUsage(this):e.visitChildren(this)}},kh=class extends u{constructor(e,t){super(e,t)}performActionUsageDeclaration(){return this.getRuleContext(0,Rs)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}get ruleIndex(){return s.RULE_transitionPerformActionUsage}enterRule(e){e.enterTransitionPerformActionUsage&&e.enterTransitionPerformActionUsage(this)}exitRule(e){e.exitTransitionPerformActionUsage&&e.exitTransitionPerformActionUsage(this)}accept(e){return e.visitTransitionPerformActionUsage?e.visitTransitionPerformActionUsage(this):e.visitChildren(this)}},Fh=class extends u{constructor(e,t){super(e,t)}acceptNodeDeclaration(){return this.getRuleContext(0,Cs)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}get ruleIndex(){return s.RULE_transitionAcceptActionUsage}enterRule(e){e.enterTransitionAcceptActionUsage&&e.enterTransitionAcceptActionUsage(this)}exitRule(e){e.exitTransitionAcceptActionUsage&&e.exitTransitionAcceptActionUsage(this)}accept(e){return e.visitTransitionAcceptActionUsage?e.visitTransitionAcceptActionUsage(this):e.visitChildren(this)}},Hh=class extends u{constructor(e,t){super(e,t)}sendNodeDeclaration(){return this.getRuleContext(0,Ro)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}get ruleIndex(){return s.RULE_transitionSendActionUsage}enterRule(e){e.enterTransitionSendActionUsage&&e.enterTransitionSendActionUsage(this)}exitRule(e){e.exitTransitionSendActionUsage&&e.exitTransitionSendActionUsage(this)}accept(e){return e.visitTransitionSendActionUsage?e.visitTransitionSendActionUsage(this):e.visitChildren(this)}},Bh=class extends u{constructor(e,t){super(e,t)}assignmentNodeDeclaration(){return this.getRuleContext(0,vs)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}actionBodyItem(e){return e===void 0?this.getRuleContexts(ot):this.getRuleContext(e,ot)}get ruleIndex(){return s.RULE_transitionAssignmentActionUsage}enterRule(e){e.enterTransitionAssignmentActionUsage&&e.enterTransitionAssignmentActionUsage(this)}exitRule(e){e.exitTransitionAssignmentActionUsage&&e.exitTransitionAssignmentActionUsage(this)}accept(e){return e.visitTransitionAssignmentActionUsage?e.visitTransitionAssignmentActionUsage(this):e.visitChildren(this)}},qr=class extends u{constructor(e,t){super(e,t)}transitionSuccession(){return this.getRuleContext(0,_h)}get ruleIndex(){return s.RULE_transitionSuccessionMember}enterRule(e){e.enterTransitionSuccessionMember&&e.enterTransitionSuccessionMember(this)}exitRule(e){e.exitTransitionSuccessionMember&&e.exitTransitionSuccessionMember(this)}accept(e){return e.visitTransitionSuccessionMember?e.visitTransitionSuccessionMember(this):e.visitChildren(this)}},_h=class extends u{constructor(e,t){super(e,t)}emptyEndMember(){return this.getRuleContext(0,Vh)}connectorEndMember(){return this.getRuleContext(0,Ve)}get ruleIndex(){return s.RULE_transitionSuccession}enterRule(e){e.enterTransitionSuccession&&e.enterTransitionSuccession(this)}exitRule(e){e.exitTransitionSuccession&&e.exitTransitionSuccession(this)}accept(e){return e.visitTransitionSuccession?e.visitTransitionSuccession(this):e.visitChildren(this)}},Vh=class extends u{constructor(e,t){super(e,t)}emptyFeature_(){return this.getRuleContext(0,qo)}get ruleIndex(){return s.RULE_emptyEndMember}enterRule(e){e.enterEmptyEndMember&&e.enterEmptyEndMember(this)}exitRule(e){e.exitEmptyEndMember&&e.exitEmptyEndMember(this)}accept(e){return e.visitEmptyEndMember?e.visitEmptyEndMember(this):e.visitChildren(this)}},qh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}CALC(){return this.getToken(s.CALC,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}calculationBody(){return this.getRuleContext(0,Lr)}get ruleIndex(){return s.RULE_calculationDefinition}enterRule(e){e.enterCalculationDefinition&&e.enterCalculationDefinition(this)}exitRule(e){e.exitCalculationDefinition&&e.exitCalculationDefinition(this)}accept(e){return e.visitCalculationDefinition?e.visitCalculationDefinition(this):e.visitChildren(this)}},jh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}CALC(){return this.getToken(s.CALC,0)}actionUsageDeclaration(){return this.getRuleContext(0,en)}calculationBody(){return this.getRuleContext(0,Lr)}get ruleIndex(){return s.RULE_calculationUsage}enterRule(e){e.enterCalculationUsage&&e.enterCalculationUsage(this)}exitRule(e){e.exitCalculationUsage&&e.exitCalculationUsage(this)}accept(e){return e.visitCalculationUsage?e.visitCalculationUsage(this):e.visitChildren(this)}},Lr=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}calculationBodyPart(){return this.getRuleContext(0,Gh)}RBRACE(){return this.getToken(s.RBRACE,0)}get ruleIndex(){return s.RULE_calculationBody}enterRule(e){e.enterCalculationBody&&e.enterCalculationBody(this)}exitRule(e){e.exitCalculationBody&&e.exitCalculationBody(this)}accept(e){return e.visitCalculationBody?e.visitCalculationBody(this):e.visitChildren(this)}},Gh=class extends u{constructor(e,t){super(e,t)}calculationBodyItem(e){return e===void 0?this.getRuleContexts(Ao):this.getRuleContext(e,Ao)}resultExpressionMember(){return this.getRuleContext(0,ss)}get ruleIndex(){return s.RULE_calculationBodyPart}enterRule(e){e.enterCalculationBodyPart&&e.enterCalculationBodyPart(this)}exitRule(e){e.exitCalculationBodyPart&&e.exitCalculationBodyPart(this)}accept(e){return e.visitCalculationBodyPart?e.visitCalculationBodyPart(this):e.visitChildren(this)}},Ao=class extends u{constructor(e,t){super(e,t)}actionBodyItem(){return this.getRuleContext(0,ot)}returnParameterMember(){return this.getRuleContext(0,Mo)}get ruleIndex(){return s.RULE_calculationBodyItem}enterRule(e){e.enterCalculationBodyItem&&e.enterCalculationBodyItem(this)}exitRule(e){e.exitCalculationBodyItem&&e.exitCalculationBodyItem(this)}accept(e){return e.visitCalculationBodyItem?e.visitCalculationBodyItem(this):e.visitChildren(this)}},Mo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}RETURN(){return this.getToken(s.RETURN,0)}usageElement(){return this.getRuleContext(0,Va)}get ruleIndex(){return s.RULE_returnParameterMember}enterRule(e){e.enterReturnParameterMember&&e.enterReturnParameterMember(this)}exitRule(e){e.exitReturnParameterMember&&e.exitReturnParameterMember(this)}accept(e){return e.visitReturnParameterMember?e.visitReturnParameterMember(this):e.visitChildren(this)}},Wh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}calculationBody(){return this.getRuleContext(0,Lr)}get ruleIndex(){return s.RULE_constraintDefinition}enterRule(e){e.enterConstraintDefinition&&e.enterConstraintDefinition(this)}exitRule(e){e.exitConstraintDefinition&&e.exitConstraintDefinition(this)}accept(e){return e.visitConstraintDefinition?e.visitConstraintDefinition(this):e.visitChildren(this)}},zh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}calculationBody(){return this.getRuleContext(0,Lr)}get ruleIndex(){return s.RULE_constraintUsage}enterRule(e){e.enterConstraintUsage&&e.enterConstraintUsage(this)}exitRule(e){e.exitConstraintUsage&&e.exitConstraintUsage(this)}accept(e){return e.visitConstraintUsage?e.visitConstraintUsage(this):e.visitChildren(this)}},Kh=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}ASSERT(){return this.getToken(s.ASSERT,0)}calculationBody(){return this.getRuleContext(0,Lr)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}NOT(){return this.getToken(s.NOT,0)}featureSpecializationPart(){return this.getRuleContext(0,ft)}get ruleIndex(){return s.RULE_assertConstraintUsage}enterRule(e){e.enterAssertConstraintUsage&&e.enterAssertConstraintUsage(this)}exitRule(e){e.exitAssertConstraintUsage&&e.exitAssertConstraintUsage(this)}accept(e){return e.visitAssertConstraintUsage?e.visitAssertConstraintUsage(this):e.visitChildren(this)}},yt=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_constraintUsageDeclaration}enterRule(e){e.enterConstraintUsageDeclaration&&e.enterConstraintUsageDeclaration(this)}exitRule(e){e.exitConstraintUsageDeclaration&&e.exitConstraintUsageDeclaration(this)}accept(e){return e.visitConstraintUsageDeclaration?e.visitConstraintUsageDeclaration(this):e.visitChildren(this)}},Qh=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_requirementDefinition}enterRule(e){e.enterRequirementDefinition&&e.enterRequirementDefinition(this)}exitRule(e){e.exitRequirementDefinition&&e.exitRequirementDefinition(this)}accept(e){return e.visitRequirementDefinition?e.visitRequirementDefinition(this):e.visitChildren(this)}},It=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}requirementBodyItem(e){return e===void 0?this.getRuleContexts(No):this.getRuleContext(e,No)}get ruleIndex(){return s.RULE_requirementBody}enterRule(e){e.enterRequirementBody&&e.enterRequirementBody(this)}exitRule(e){e.exitRequirementBody&&e.exitRequirementBody(this)}accept(e){return e.visitRequirementBody?e.visitRequirementBody(this):e.visitChildren(this)}},No=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,mi)}subjectMember(){return this.getRuleContext(0,Uo)}requirementConstraintMember(){return this.getRuleContext(0,Yh)}framedConcernMember(){return this.getRuleContext(0,Zh)}requirementVerificationMember(){return this.getRuleContext(0,yd)}actorMember(){return this.getRuleContext(0,wo)}stakeholderMember(){return this.getRuleContext(0,rd)}get ruleIndex(){return s.RULE_requirementBodyItem}enterRule(e){e.enterRequirementBodyItem&&e.enterRequirementBodyItem(this)}exitRule(e){e.exitRequirementBodyItem&&e.exitRequirementBodyItem(this)}accept(e){return e.visitRequirementBodyItem?e.visitRequirementBodyItem(this):e.visitChildren(this)}},Uo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}subjectUsage(){return this.getRuleContext(0,$h)}get ruleIndex(){return s.RULE_subjectMember}enterRule(e){e.enterSubjectMember&&e.enterSubjectMember(this)}exitRule(e){e.exitSubjectMember&&e.exitSubjectMember(this)}accept(e){return e.visitSubjectMember?e.visitSubjectMember(this):e.visitChildren(this)}},$h=class extends u{constructor(e,t){super(e,t)}SUBJECT(){return this.getToken(s.SUBJECT,0)}usage(){return this.getRuleContext(0,qe)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_subjectUsage}enterRule(e){e.enterSubjectUsage&&e.enterSubjectUsage(this)}exitRule(e){e.exitSubjectUsage&&e.exitSubjectUsage(this)}accept(e){return e.visitSubjectUsage?e.visitSubjectUsage(this):e.visitChildren(this)}},Yh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}requirementKind(){return this.getRuleContext(0,Jh)}requirementConstraintUsage(){return this.getRuleContext(0,Xh)}get ruleIndex(){return s.RULE_requirementConstraintMember}enterRule(e){e.enterRequirementConstraintMember&&e.enterRequirementConstraintMember(this)}exitRule(e){e.exitRequirementConstraintMember&&e.exitRequirementConstraintMember(this)}accept(e){return e.visitRequirementConstraintMember?e.visitRequirementConstraintMember(this):e.visitChildren(this)}},Jh=class extends u{constructor(e,t){super(e,t)}ASSUME(){return this.getToken(s.ASSUME,0)}REQUIRE(){return this.getToken(s.REQUIRE,0)}get ruleIndex(){return s.RULE_requirementKind}enterRule(e){e.enterRequirementKind&&e.enterRequirementKind(this)}exitRule(e){e.exitRequirementKind&&e.exitRequirementKind(this)}accept(e){return e.visitRequirementKind?e.visitRequirementKind(this):e.visitChildren(this)}},Xh=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}requirementBody(){return this.getRuleContext(0,It)}featureSpecializationPart(){return this.getRuleContext(0,ft)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}calculationBody(){return this.getRuleContext(0,Lr)}CONSTRAINT(){return this.getToken(s.CONSTRAINT,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_requirementConstraintUsage}enterRule(e){e.enterRequirementConstraintUsage&&e.enterRequirementConstraintUsage(this)}exitRule(e){e.exitRequirementConstraintUsage&&e.exitRequirementConstraintUsage(this)}accept(e){return e.visitRequirementConstraintUsage?e.visitRequirementConstraintUsage(this):e.visitChildren(this)}},Zh=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}FRAME(){return this.getToken(s.FRAME,0)}framedConcernUsage(){return this.getRuleContext(0,ed)}get ruleIndex(){return s.RULE_framedConcernMember}enterRule(e){e.enterFramedConcernMember&&e.enterFramedConcernMember(this)}exitRule(e){e.exitFramedConcernMember&&e.exitFramedConcernMember(this)}accept(e){return e.visitFramedConcernMember?e.visitFramedConcernMember(this):e.visitChildren(this)}},ed=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}calculationBody(){return this.getRuleContext(0,Lr)}featureSpecializationPart(){return this.getRuleContext(0,ft)}calculationUsageDeclaration(){return this.getRuleContext(0,qd)}CONCERN(){return this.getToken(s.CONCERN,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_framedConcernUsage}enterRule(e){e.enterFramedConcernUsage&&e.enterFramedConcernUsage(this)}exitRule(e){e.exitFramedConcernUsage&&e.exitFramedConcernUsage(this)}accept(e){return e.visitFramedConcernUsage?e.visitFramedConcernUsage(this):e.visitChildren(this)}},wo=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}actorUsage(){return this.getRuleContext(0,td)}get ruleIndex(){return s.RULE_actorMember}enterRule(e){e.enterActorMember&&e.enterActorMember(this)}exitRule(e){e.exitActorMember&&e.exitActorMember(this)}accept(e){return e.visitActorMember?e.visitActorMember(this):e.visitChildren(this)}},td=class extends u{constructor(e,t){super(e,t)}ACTOR(){return this.getToken(s.ACTOR,0)}usage(){return this.getRuleContext(0,qe)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_actorUsage}enterRule(e){e.enterActorUsage&&e.enterActorUsage(this)}exitRule(e){e.exitActorUsage&&e.exitActorUsage(this)}accept(e){return e.visitActorUsage?e.visitActorUsage(this):e.visitChildren(this)}},rd=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}stakeholderUsage(){return this.getRuleContext(0,id)}get ruleIndex(){return s.RULE_stakeholderMember}enterRule(e){e.enterStakeholderMember&&e.enterStakeholderMember(this)}exitRule(e){e.exitStakeholderMember&&e.exitStakeholderMember(this)}accept(e){return e.visitStakeholderMember?e.visitStakeholderMember(this):e.visitChildren(this)}},id=class extends u{constructor(e,t){super(e,t)}STAKEHOLDER(){return this.getToken(s.STAKEHOLDER,0)}usage(){return this.getRuleContext(0,qe)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_stakeholderUsage}enterRule(e){e.enterStakeholderUsage&&e.enterStakeholderUsage(this)}exitRule(e){e.exitStakeholderUsage&&e.exitStakeholderUsage(this)}accept(e){return e.visitStakeholderUsage?e.visitStakeholderUsage(this):e.visitChildren(this)}},nd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_requirementUsage}enterRule(e){e.enterRequirementUsage&&e.enterRequirementUsage(this)}exitRule(e){e.exitRequirementUsage&&e.exitRequirementUsage(this)}accept(e){return e.visitRequirementUsage?e.visitRequirementUsage(this):e.visitChildren(this)}},sd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}SATISFY(){return this.getToken(s.SATISFY,0)}requirementBody(){return this.getRuleContext(0,It)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}ASSERT(){return this.getToken(s.ASSERT,0)}valuePart(){return this.getRuleContext(0,Ue)}BY(){return this.getToken(s.BY,0)}satisfactionSubjectMember(){return this.getRuleContext(0,ad)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usageDeclaration(){return this.getRuleContext(0,be)}NOT(){return this.getToken(s.NOT,0)}get ruleIndex(){return s.RULE_satisfyRequirementUsage}enterRule(e){e.enterSatisfyRequirementUsage&&e.enterSatisfyRequirementUsage(this)}exitRule(e){e.exitSatisfyRequirementUsage&&e.exitSatisfyRequirementUsage(this)}accept(e){return e.visitSatisfyRequirementUsage?e.visitSatisfyRequirementUsage(this):e.visitChildren(this)}},ad=class extends u{constructor(e,t){super(e,t)}satisfactionParameter(){return this.getRuleContext(0,od)}get ruleIndex(){return s.RULE_satisfactionSubjectMember}enterRule(e){e.enterSatisfactionSubjectMember&&e.enterSatisfactionSubjectMember(this)}exitRule(e){e.exitSatisfactionSubjectMember&&e.exitSatisfactionSubjectMember(this)}accept(e){return e.visitSatisfactionSubjectMember?e.visitSatisfactionSubjectMember(this):e.visitChildren(this)}},od=class extends u{constructor(e,t){super(e,t)}satisfactionFeatureValue(){return this.getRuleContext(0,ld)}get ruleIndex(){return s.RULE_satisfactionParameter}enterRule(e){e.enterSatisfactionParameter&&e.enterSatisfactionParameter(this)}exitRule(e){e.exitSatisfactionParameter&&e.exitSatisfactionParameter(this)}accept(e){return e.visitSatisfactionParameter?e.visitSatisfactionParameter(this):e.visitChildren(this)}},ld=class extends u{constructor(e,t){super(e,t)}satisfactionReferenceExpression(){return this.getRuleContext(0,ud)}get ruleIndex(){return s.RULE_satisfactionFeatureValue}enterRule(e){e.enterSatisfactionFeatureValue&&e.enterSatisfactionFeatureValue(this)}exitRule(e){e.exitSatisfactionFeatureValue&&e.exitSatisfactionFeatureValue(this)}accept(e){return e.visitSatisfactionFeatureValue?e.visitSatisfactionFeatureValue(this):e.visitChildren(this)}},ud=class extends u{constructor(e,t){super(e,t)}featureChainMember(){return this.getRuleContext(0,Gi)}get ruleIndex(){return s.RULE_satisfactionReferenceExpression}enterRule(e){e.enterSatisfactionReferenceExpression&&e.enterSatisfactionReferenceExpression(this)}exitRule(e){e.exitSatisfactionReferenceExpression&&e.exitSatisfactionReferenceExpression(this)}accept(e){return e.visitSatisfactionReferenceExpression?e.visitSatisfactionReferenceExpression(this):e.visitChildren(this)}},cd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}CONCERN(){return this.getToken(s.CONCERN,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_concernDefinition}enterRule(e){e.enterConcernDefinition&&e.enterConcernDefinition(this)}exitRule(e){e.exitConcernDefinition&&e.exitConcernDefinition(this)}accept(e){return e.visitConcernDefinition?e.visitConcernDefinition(this):e.visitChildren(this)}},hd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}CONCERN(){return this.getToken(s.CONCERN,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_concernUsage}enterRule(e){e.enterConcernUsage&&e.enterConcernUsage(this)}exitRule(e){e.exitConcernUsage&&e.exitConcernUsage(this)}accept(e){return e.visitConcernUsage?e.visitConcernUsage(this):e.visitChildren(this)}},dd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}CASE(){return this.getToken(s.CASE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_caseDefinition}enterRule(e){e.enterCaseDefinition&&e.enterCaseDefinition(this)}exitRule(e){e.exitCaseDefinition&&e.exitCaseDefinition(this)}accept(e){return e.visitCaseDefinition?e.visitCaseDefinition(this):e.visitChildren(this)}},pd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}CASE(){return this.getToken(s.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_caseUsage}enterRule(e){e.enterCaseUsage&&e.enterCaseUsage(this)}exitRule(e){e.exitCaseUsage&&e.exitCaseUsage(this)}accept(e){return e.visitCaseUsage?e.visitCaseUsage(this):e.visitChildren(this)}},Qt=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}caseBodyItem(e){return e===void 0?this.getRuleContexts(Do):this.getRuleContext(e,Do)}resultExpressionMember(){return this.getRuleContext(0,ss)}get ruleIndex(){return s.RULE_caseBody}enterRule(e){e.enterCaseBody&&e.enterCaseBody(this)}exitRule(e){e.exitCaseBody&&e.exitCaseBody(this)}accept(e){return e.visitCaseBody?e.visitCaseBody(this):e.visitChildren(this)}},Do=class extends u{constructor(e,t){super(e,t)}actionBodyItem(){return this.getRuleContext(0,ot)}returnParameterMember(){return this.getRuleContext(0,Mo)}subjectMember(){return this.getRuleContext(0,Uo)}actorMember(){return this.getRuleContext(0,wo)}objectiveMember(){return this.getRuleContext(0,fd)}get ruleIndex(){return s.RULE_caseBodyItem}enterRule(e){e.enterCaseBodyItem&&e.enterCaseBodyItem(this)}exitRule(e){e.exitCaseBodyItem&&e.exitCaseBodyItem(this)}accept(e){return e.visitCaseBodyItem?e.visitCaseBodyItem(this):e.visitChildren(this)}},fd=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}OBJECTIVE(){return this.getToken(s.OBJECTIVE,0)}objectiveRequirementUsage(){return this.getRuleContext(0,md)}get ruleIndex(){return s.RULE_objectiveMember}enterRule(e){e.enterObjectiveMember&&e.enterObjectiveMember(this)}exitRule(e){e.exitObjectiveMember&&e.exitObjectiveMember(this)}accept(e){return e.visitObjectiveMember?e.visitObjectiveMember(this):e.visitChildren(this)}},md=class extends u{constructor(e,t){super(e,t)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}requirementBody(){return this.getRuleContext(0,It)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_objectiveRequirementUsage}enterRule(e){e.enterObjectiveRequirementUsage&&e.enterObjectiveRequirementUsage(this)}exitRule(e){e.exitObjectiveRequirementUsage&&e.exitObjectiveRequirementUsage(this)}accept(e){return e.visitObjectiveRequirementUsage?e.visitObjectiveRequirementUsage(this):e.visitChildren(this)}},xd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}ANALYSIS(){return this.getToken(s.ANALYSIS,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_analysisCaseDefinition}enterRule(e){e.enterAnalysisCaseDefinition&&e.enterAnalysisCaseDefinition(this)}exitRule(e){e.exitAnalysisCaseDefinition&&e.exitAnalysisCaseDefinition(this)}accept(e){return e.visitAnalysisCaseDefinition?e.visitAnalysisCaseDefinition(this):e.visitChildren(this)}},bd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}ANALYSIS(){return this.getToken(s.ANALYSIS,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_analysisCaseUsage}enterRule(e){e.enterAnalysisCaseUsage&&e.enterAnalysisCaseUsage(this)}exitRule(e){e.exitAnalysisCaseUsage&&e.exitAnalysisCaseUsage(this)}accept(e){return e.visitAnalysisCaseUsage?e.visitAnalysisCaseUsage(this):e.visitChildren(this)}},gd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}VERIFICATION(){return this.getToken(s.VERIFICATION,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_verificationCaseDefinition}enterRule(e){e.enterVerificationCaseDefinition&&e.enterVerificationCaseDefinition(this)}exitRule(e){e.exitVerificationCaseDefinition&&e.exitVerificationCaseDefinition(this)}accept(e){return e.visitVerificationCaseDefinition?e.visitVerificationCaseDefinition(this):e.visitChildren(this)}},Rd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}VERIFICATION(){return this.getToken(s.VERIFICATION,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_verificationCaseUsage}enterRule(e){e.enterVerificationCaseUsage&&e.enterVerificationCaseUsage(this)}exitRule(e){e.exitVerificationCaseUsage&&e.exitVerificationCaseUsage(this)}accept(e){return e.visitVerificationCaseUsage?e.visitVerificationCaseUsage(this):e.visitChildren(this)}},yd=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}VERIFY(){return this.getToken(s.VERIFY,0)}requirementVerificationUsage(){return this.getRuleContext(0,Cd)}get ruleIndex(){return s.RULE_requirementVerificationMember}enterRule(e){e.enterRequirementVerificationMember&&e.enterRequirementVerificationMember(this)}exitRule(e){e.exitRequirementVerificationMember&&e.exitRequirementVerificationMember(this)}accept(e){return e.visitRequirementVerificationMember?e.visitRequirementVerificationMember(this):e.visitChildren(this)}},Cd=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}requirementBody(){return this.getRuleContext(0,It)}featureSpecialization(e){return e===void 0?this.getRuleContexts(cr):this.getRuleContext(e,cr)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}REQUIREMENT(){return this.getToken(s.REQUIREMENT,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_requirementVerificationUsage}enterRule(e){e.enterRequirementVerificationUsage&&e.enterRequirementVerificationUsage(this)}exitRule(e){e.exitRequirementVerificationUsage&&e.exitRequirementVerificationUsage(this)}accept(e){return e.visitRequirementVerificationUsage?e.visitRequirementVerificationUsage(this):e.visitChildren(this)}},vd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_useCaseDefinition}enterRule(e){e.enterUseCaseDefinition&&e.enterUseCaseDefinition(this)}exitRule(e){e.exitUseCaseDefinition&&e.exitUseCaseDefinition(this)}accept(e){return e.visitUseCaseDefinition?e.visitUseCaseDefinition(this):e.visitChildren(this)}},Ed=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}caseBody(){return this.getRuleContext(0,Qt)}get ruleIndex(){return s.RULE_useCaseUsage}enterRule(e){e.enterUseCaseUsage&&e.enterUseCaseUsage(this)}exitRule(e){e.exitUseCaseUsage&&e.exitUseCaseUsage(this)}accept(e){return e.visitUseCaseUsage?e.visitUseCaseUsage(this):e.visitChildren(this)}},Ld=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}INCLUDE(){return this.getToken(s.INCLUDE,0)}caseBody(){return this.getRuleContext(0,Qt)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}USE(){return this.getToken(s.USE,0)}CASE(){return this.getToken(s.CASE,0)}valuePart(){return this.getRuleContext(0,Ue)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usageDeclaration(){return this.getRuleContext(0,be)}get ruleIndex(){return s.RULE_includeUseCaseUsage}enterRule(e){e.enterIncludeUseCaseUsage&&e.enterIncludeUseCaseUsage(this)}exitRule(e){e.exitIncludeUseCaseUsage&&e.exitIncludeUseCaseUsage(this)}accept(e){return e.visitIncludeUseCaseUsage?e.visitIncludeUseCaseUsage(this):e.visitChildren(this)}},Sd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}VIEW(){return this.getToken(s.VIEW,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}viewDefinitionBody(){return this.getRuleContext(0,Pd)}get ruleIndex(){return s.RULE_viewDefinition}enterRule(e){e.enterViewDefinition&&e.enterViewDefinition(this)}exitRule(e){e.exitViewDefinition&&e.exitViewDefinition(this)}accept(e){return e.visitViewDefinition?e.visitViewDefinition(this):e.visitChildren(this)}},Pd=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}viewDefinitionBodyItem(e){return e===void 0?this.getRuleContexts(Oo):this.getRuleContext(e,Oo)}get ruleIndex(){return s.RULE_viewDefinitionBody}enterRule(e){e.enterViewDefinitionBody&&e.enterViewDefinitionBody(this)}exitRule(e){e.exitViewDefinitionBody&&e.exitViewDefinitionBody(this)}accept(e){return e.visitViewDefinitionBody?e.visitViewDefinitionBody(this):e.visitChildren(this)}},Oo=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,mi)}elementFilterMember(){return this.getRuleContext(0,os)}viewRenderingMember(){return this.getRuleContext(0,Io)}get ruleIndex(){return s.RULE_viewDefinitionBodyItem}enterRule(e){e.enterViewDefinitionBodyItem&&e.enterViewDefinitionBodyItem(this)}exitRule(e){e.exitViewDefinitionBodyItem&&e.exitViewDefinitionBodyItem(this)}accept(e){return e.visitViewDefinitionBodyItem?e.visitViewDefinitionBodyItem(this):e.visitChildren(this)}},Io=class extends u{constructor(e,t){super(e,t)}memberPrefix(){return this.getRuleContext(0,oe)}RENDER(){return this.getToken(s.RENDER,0)}viewRenderingUsage(){return this.getRuleContext(0,Td)}get ruleIndex(){return s.RULE_viewRenderingMember}enterRule(e){e.enterViewRenderingMember&&e.enterViewRenderingMember(this)}exitRule(e){e.exitViewRenderingMember&&e.exitViewRenderingMember(this)}accept(e){return e.visitViewRenderingMember?e.visitViewRenderingMember(this):e.visitChildren(this)}},Td=class extends u{constructor(e,t){super(e,t)}ownedReferenceSubsetting(){return this.getRuleContext(0,et)}usageBody(){return this.getRuleContext(0,Kt)}featureSpecializationPart(){return this.getRuleContext(0,ft)}usage(){return this.getRuleContext(0,qe)}RENDERING(){return this.getToken(s.RENDERING,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_viewRenderingUsage}enterRule(e){e.enterViewRenderingUsage&&e.enterViewRenderingUsage(this)}exitRule(e){e.exitViewRenderingUsage&&e.exitViewRenderingUsage(this)}accept(e){return e.visitViewRenderingUsage?e.visitViewRenderingUsage(this):e.visitChildren(this)}},ko=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}VIEW(){return this.getToken(s.VIEW,0)}viewBody(){return this.getRuleContext(0,Ad)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_viewUsage}enterRule(e){e.enterViewUsage&&e.enterViewUsage(this)}exitRule(e){e.exitViewUsage&&e.exitViewUsage(this)}accept(e){return e.visitViewUsage?e.visitViewUsage(this):e.visitChildren(this)}},Ad=class extends u{constructor(e,t){super(e,t)}SEMI(){return this.getToken(s.SEMI,0)}LBRACE(){return this.getToken(s.LBRACE,0)}RBRACE(){return this.getToken(s.RBRACE,0)}viewBodyItem(e){return e===void 0?this.getRuleContexts(Fo):this.getRuleContext(e,Fo)}get ruleIndex(){return s.RULE_viewBody}enterRule(e){e.enterViewBody&&e.enterViewBody(this)}exitRule(e){e.exitViewBody&&e.exitViewBody(this)}accept(e){return e.visitViewBody?e.visitViewBody(this):e.visitChildren(this)}},Fo=class extends u{constructor(e,t){super(e,t)}definitionBodyItem(){return this.getRuleContext(0,mi)}elementFilterMember(){return this.getRuleContext(0,os)}viewRenderingMember(){return this.getRuleContext(0,Io)}expose(){return this.getRuleContext(0,Md)}get ruleIndex(){return s.RULE_viewBodyItem}enterRule(e){e.enterViewBodyItem&&e.enterViewBodyItem(this)}exitRule(e){e.exitViewBodyItem&&e.exitViewBodyItem(this)}accept(e){return e.visitViewBodyItem?e.visitViewBodyItem(this):e.visitChildren(this)}},Md=class extends u{constructor(e,t){super(e,t)}EXPOSE(){return this.getToken(s.EXPOSE,0)}relationshipBody(){return this.getRuleContext(0,Ze)}membershipExpose(){return this.getRuleContext(0,Nd)}namespaceExpose(){return this.getRuleContext(0,Ud)}get ruleIndex(){return s.RULE_expose}enterRule(e){e.enterExpose&&e.enterExpose(this)}exitRule(e){e.exitExpose&&e.exitExpose(this)}accept(e){return e.visitExpose?e.visitExpose(this):e.visitChildren(this)}},Nd=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,es)}get ruleIndex(){return s.RULE_membershipExpose}enterRule(e){e.enterMembershipExpose&&e.enterMembershipExpose(this)}exitRule(e){e.exitMembershipExpose&&e.exitMembershipExpose(this)}accept(e){return e.visitMembershipExpose?e.visitMembershipExpose(this):e.visitChildren(this)}},Ud=class extends u{constructor(e,t){super(e,t)}namespaceImport(){return this.getRuleContext(0,ca)}get ruleIndex(){return s.RULE_namespaceExpose}enterRule(e){e.enterNamespaceExpose&&e.enterNamespaceExpose(this)}exitRule(e){e.exitNamespaceExpose&&e.exitNamespaceExpose(this)}accept(e){return e.visitNamespaceExpose?e.visitNamespaceExpose(this):e.visitChildren(this)}},wd=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}VIEWPOINT(){return this.getToken(s.VIEWPOINT,0)}DEF(){return this.getToken(s.DEF,0)}definitionDeclaration(){return this.getRuleContext(0,rt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_viewpointDefinition}enterRule(e){e.enterViewpointDefinition&&e.enterViewpointDefinition(this)}exitRule(e){e.exitViewpointDefinition&&e.exitViewpointDefinition(this)}accept(e){return e.visitViewpointDefinition?e.visitViewpointDefinition(this):e.visitChildren(this)}},Dd=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}VIEWPOINT(){return this.getToken(s.VIEWPOINT,0)}constraintUsageDeclaration(){return this.getRuleContext(0,yt)}requirementBody(){return this.getRuleContext(0,It)}get ruleIndex(){return s.RULE_viewpointUsage}enterRule(e){e.enterViewpointUsage&&e.enterViewpointUsage(this)}exitRule(e){e.exitViewpointUsage&&e.exitViewpointUsage(this)}accept(e){return e.visitViewpointUsage?e.visitViewpointUsage(this):e.visitChildren(this)}},Od=class extends u{constructor(e,t){super(e,t)}occurrenceDefinitionPrefix(){return this.getRuleContext(0,Ie)}RENDERING(){return this.getToken(s.RENDERING,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}get ruleIndex(){return s.RULE_renderingDefinition}enterRule(e){e.enterRenderingDefinition&&e.enterRenderingDefinition(this)}exitRule(e){e.exitRenderingDefinition&&e.exitRenderingDefinition(this)}accept(e){return e.visitRenderingDefinition?e.visitRenderingDefinition(this):e.visitChildren(this)}},Ho=class extends u{constructor(e,t){super(e,t)}occurrenceUsagePrefix(){return this.getRuleContext(0,ce)}RENDERING(){return this.getToken(s.RENDERING,0)}usage(){return this.getRuleContext(0,qe)}get ruleIndex(){return s.RULE_renderingUsage}enterRule(e){e.enterRenderingUsage&&e.enterRenderingUsage(this)}exitRule(e){e.exitRenderingUsage&&e.exitRenderingUsage(this)}accept(e){return e.visitRenderingUsage?e.visitRenderingUsage(this):e.visitChildren(this)}},Id=class extends u{constructor(e,t){super(e,t)}METADATA(){return this.getToken(s.METADATA,0)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}ABSTRACT(){return this.getToken(s.ABSTRACT,0)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_metadataDefinition}enterRule(e){e.enterMetadataDefinition&&e.enterMetadataDefinition(this)}exitRule(e){e.exitMetadataDefinition&&e.exitMetadataDefinition(this)}accept(e){return e.visitMetadataDefinition?e.visitMetadataDefinition(this):e.visitChildren(this)}},Bo=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}get ruleIndex(){return s.RULE_prefixMetadataUsage}enterRule(e){e.enterPrefixMetadataUsage&&e.enterPrefixMetadataUsage(this)}exitRule(e){e.exitPrefixMetadataUsage&&e.exitPrefixMetadataUsage(this)}accept(e){return e.visitPrefixMetadataUsage?e.visitPrefixMetadataUsage(this):e.visitChildren(this)}},l4=class extends u{constructor(e,t){super(e,t)}metadataUsageDeclaration(){return this.getRuleContext(0,kd)}metadataBody(){return this.getRuleContext(0,zi)}AT_SIGN(){return this.getToken(s.AT_SIGN,0)}METADATA(){return this.getToken(s.METADATA,0)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}ABOUT(){return this.getToken(s.ABOUT,0)}annotation(e){return e===void 0?this.getRuleContexts(Fr):this.getRuleContext(e,Fr)}COMMA(e){return e===void 0?this.getTokens(s.COMMA):this.getToken(s.COMMA,e)}get ruleIndex(){return s.RULE_metadataUsage}enterRule(e){e.enterMetadataUsage&&e.enterMetadataUsage(this)}exitRule(e){e.exitMetadataUsage&&e.exitMetadataUsage(this)}accept(e){return e.visitMetadataUsage?e.visitMetadataUsage(this):e.visitChildren(this)}},kd=class extends u{constructor(e,t){super(e,t)}ownedFeatureTyping(){return this.getRuleContext(0,Hr)}COLON(){return this.getToken(s.COLON,0)}TYPED(){return this.getToken(s.TYPED,0)}BY(){return this.getToken(s.BY,0)}identification(){return this.getRuleContext(0,ve)}get ruleIndex(){return s.RULE_metadataUsageDeclaration}enterRule(e){e.enterMetadataUsageDeclaration&&e.enterMetadataUsageDeclaration(this)}exitRule(e){e.exitMetadataUsageDeclaration&&e.exitMetadataUsageDeclaration(this)}accept(e){return e.visitMetadataUsageDeclaration?e.visitMetadataUsageDeclaration(this):e.visitChildren(this)}},_o=class extends u{constructor(e,t){super(e,t)}metadataBodyUsage(){return this.getRuleContext(0,Fd)}get ruleIndex(){return s.RULE_metadataBodyUsageMember}enterRule(e){e.enterMetadataBodyUsageMember&&e.enterMetadataBodyUsageMember(this)}exitRule(e){e.exitMetadataBodyUsageMember&&e.exitMetadataBodyUsageMember(this)}accept(e){return e.visitMetadataBodyUsageMember?e.visitMetadataBodyUsageMember(this):e.visitChildren(this)}},Fd=class extends u{constructor(e,t){super(e,t)}ownedRedefinition(){return this.getRuleContext(0,di)}metadataBody(){return this.getRuleContext(0,zi)}REF(){return this.getToken(s.REF,0)}featureSpecializationPart(){return this.getRuleContext(0,ft)}valuePart(){return this.getRuleContext(0,Ue)}COLON_GT_GT(){return this.getToken(s.COLON_GT_GT,0)}REDEFINES(){return this.getToken(s.REDEFINES,0)}get ruleIndex(){return s.RULE_metadataBodyUsage}enterRule(e){e.enterMetadataBodyUsage&&e.enterMetadataBodyUsage(this)}exitRule(e){e.exitMetadataBodyUsage&&e.exitMetadataBodyUsage(this)}accept(e){return e.visitMetadataBodyUsage?e.visitMetadataBodyUsage(this):e.visitChildren(this)}},Hd=class extends u{constructor(e,t){super(e,t)}DEF(){return this.getToken(s.DEF,0)}definition(){return this.getRuleContext(0,Rt)}basicDefinitionPrefix(){return this.getRuleContext(0,Qi)}definitionExtensionKeyword(e){return e===void 0?this.getRuleContexts(gt):this.getRuleContext(e,gt)}get ruleIndex(){return s.RULE_extendedDefinition}enterRule(e){e.enterExtendedDefinition&&e.enterExtendedDefinition(this)}exitRule(e){e.exitExtendedDefinition&&e.exitExtendedDefinition(this)}accept(e){return e.visitExtendedDefinition?e.visitExtendedDefinition(this):e.visitChildren(this)}},Bd=class extends u{constructor(e,t){super(e,t)}unextendedUsagePrefix(){return this.getRuleContext(0,Wa)}usage(){return this.getRuleContext(0,qe)}usageExtensionKeyword(e){return e===void 0?this.getRuleContexts(pe):this.getRuleContext(e,pe)}get ruleIndex(){return s.RULE_extendedUsage}enterRule(e){e.enterExtendedUsage&&e.enterExtendedUsage(this)}exitRule(e){e.exitExtendedUsage&&e.exitExtendedUsage(this)}accept(e){return e.visitExtendedUsage?e.visitExtendedUsage(this):e.visitChildren(this)}},_d=class extends u{constructor(e,t){super(e,t)}membershipImport(){return this.getRuleContext(0,es)}namespaceImportDirect(){return this.getRuleContext(0,Vd)}get ruleIndex(){return s.RULE_filterPackageImportDeclaration}enterRule(e){e.enterFilterPackageImportDeclaration&&e.enterFilterPackageImportDeclaration(this)}exitRule(e){e.exitFilterPackageImportDeclaration&&e.exitFilterPackageImportDeclaration(this)}accept(e){return e.visitFilterPackageImportDeclaration?e.visitFilterPackageImportDeclaration(this):e.visitChildren(this)}},Vd=class extends u{constructor(e,t){super(e,t)}qualifiedName(){return this.getRuleContext(0,B)}COLON_COLON(e){return e===void 0?this.getTokens(s.COLON_COLON):this.getToken(s.COLON_COLON,e)}STAR(){return this.getToken(s.STAR,0)}STAR_STAR(){return this.getToken(s.STAR_STAR,0)}get ruleIndex(){return s.RULE_namespaceImportDirect}enterRule(e){e.enterNamespaceImportDirect&&e.enterNamespaceImportDirect(this)}exitRule(e){e.exitNamespaceImportDirect&&e.exitNamespaceImportDirect(this)}accept(e){return e.visitNamespaceImportDirect?e.visitNamespaceImportDirect(this):e.visitChildren(this)}},qd=class extends u{constructor(e,t){super(e,t)}usageDeclaration(){return this.getRuleContext(0,be)}valuePart(){return this.getRuleContext(0,Ue)}get ruleIndex(){return s.RULE_calculationUsageDeclaration}enterRule(e){e.enterCalculationUsageDeclaration&&e.enterCalculationUsageDeclaration(this)}exitRule(e){e.exitCalculationUsageDeclaration&&e.exitCalculationUsageDeclaration(this)}accept(e){return e.visitCalculationUsageDeclaration?e.visitCalculationUsageDeclaration(this):e.visitChildren(this)}},Vo=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyActionUsage_}enterRule(e){e.enterEmptyActionUsage_&&e.enterEmptyActionUsage_(this)}exitRule(e){e.exitEmptyActionUsage_&&e.exitEmptyActionUsage_(this)}accept(e){return e.visitEmptyActionUsage_?e.visitEmptyActionUsage_(this):e.visitChildren(this)}},qo=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyFeature_}enterRule(e){e.enterEmptyFeature_&&e.enterEmptyFeature_(this)}exitRule(e){e.exitEmptyFeature_&&e.exitEmptyFeature_(this)}accept(e){return e.visitEmptyFeature_?e.visitEmptyFeature_(this):e.visitChildren(this)}},jd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyMultiplicity_}enterRule(e){e.enterEmptyMultiplicity_&&e.enterEmptyMultiplicity_(this)}exitRule(e){e.exitEmptyMultiplicity_&&e.exitEmptyMultiplicity_(this)}accept(e){return e.visitEmptyMultiplicity_?e.visitEmptyMultiplicity_(this):e.visitChildren(this)}},Gd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_emptyUsage_}enterRule(e){e.enterEmptyUsage_&&e.enterEmptyUsage_(this)}exitRule(e){e.exitEmptyUsage_&&e.exitEmptyUsage_(this)}accept(e){return e.visitEmptyUsage_?e.visitEmptyUsage_(this):e.visitChildren(this)}},Wd=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}get ruleIndex(){return s.RULE_filterPackageImport}enterRule(e){e.enterFilterPackageImport&&e.enterFilterPackageImport(this)}exitRule(e){e.exitFilterPackageImport&&e.exitFilterPackageImport(this)}accept(e){return e.visitFilterPackageImport?e.visitFilterPackageImport(this):e.visitChildren(this)}},zd=class extends u{constructor(e,t){super(e,t)}IDENTIFIER(){return this.getToken(s.IDENTIFIER,0)}get ruleIndex(){return s.RULE_nonFeatureChainPrimaryExpression}enterRule(e){e.enterNonFeatureChainPrimaryExpression&&e.enterNonFeatureChainPrimaryExpression(this)}exitRule(e){e.exitNonFeatureChainPrimaryExpression&&e.exitNonFeatureChainPrimaryExpression(this)}accept(e){return e.visitNonFeatureChainPrimaryExpression?e.visitNonFeatureChainPrimaryExpression(this):e.visitChildren(this)}},Kd=class extends u{constructor(e,t){super(e,t)}get ruleIndex(){return s.RULE_portConjugation}enterRule(e){e.enterPortConjugation&&e.enterPortConjugation(this)}exitRule(e){e.exitPortConjugation&&e.exitPortConjugation(this)}accept(e){return e.visitPortConjugation?e.visitPortConjugation(this):e.visitChildren(this)}};var Qd=class extends zn{errors=[];syntaxError(e,t,i,n,a,o){let l=t,h=l?.text?.length??1;this.errors.push({line:i-1,column:n,message:a,offendingSymbol:l,length:h})}getErrors(){return this.errors}hasErrors(){return this.errors.length>0}};function Qg(r){let e=Date.now(),t=Wn.fromString(r),i=new Vu(t),n=new Bu(i);n.fill();let a=Date.now()-e,o=Date.now(),l=new s(n);l.removeErrorListeners(),l.interpreter.predictionMode=$e.SLL,l.errorHandler=new k3;let h=null,f="SLL";try{h=l.rootNamespace();let M=Date.now()-o;return{tree:h,tokenStream:n,parser:l,lexer:i,errors:[],mode:f,timing:{lexMs:a,parseMs:M}}}catch{}f="LL";let x=Date.now();n.seek(0),l.reset(),l.interpreter.predictionMode=$e.LL,l.errorHandler=new _u;let R=new Qd;i.removeErrorListeners(),l.removeErrorListeners(),l.addErrorListener(R);try{h=l.rootNamespace()}catch{}let S=Date.now()-x;return{tree:h,tokenStream:n,parser:l,lexer:i,errors:R.getErrors(),mode:f,timing:{lexMs:a,parseMs:S}}}var $d=class{cache=new Map;documents;setDocuments(e){this.documents=e}parse(e){let t=e.uri,i=e.version,n=this.cache.get(t);if(n&&n.version===i)return n.result;let a=e.getText(),o=Date.now(),l=Qg(a),h=Date.now()-o;return this.cache.set(t,{version:i,text:a,result:l,parseTimeMs:h}),l}get(e){if(this.documents){let t=this.documents.get(e);if(t)return this.parse(t)}return this.cache.get(e)?.result}getText(e){if(this.documents){let t=this.documents.get(e);if(t)return t.getText()}return this.cache.get(e)?.text}setParseTimeMs(e,t){let i=this.cache.get(e);i&&(i.parseTimeMs=t)}getParseTimeMs(e){return this.cache.get(e)?.parseTimeMs??0}remove(e){this.cache.delete(e)}getUris(){let e=new Set(this.cache.keys());if(this.documents)for(let t of this.documents.all())e.add(t.uri);return Array.from(e)}};function V8(r){return{line:(r.line??1)-1,character:r.column??0}}function $g(r){let e=V8(r),t=r.text?.length??1;return{start:e,end:{line:e.line,character:e.character+t}}}function Yg(r){let e=r.start,t=r.stop??r.start;if(!e)return{start:{line:0,character:0},end:{line:0,character:0}};let i={line:(e.line??1)-1,character:e.column??0},n=t?{line:(t.line??1)-1,character:(t.column??0)+(t.text?.length??1)}:{line:i.line,character:i.character+1};return{start:i,end:n}}var jo=class{constructor(e,t=null){this.id=e;this.parent=t}symbols=new Map;define(e){this.symbols.set(e.name,e)}lookupLocal(e){return this.symbols.get(e)}resolve(e){let t=this.symbols.get(e);return t||this.parent?.resolve(e)}resolveQualified(e){let t=e.split("::");if(t.length===1)return this.resolve(t[0]);let i=this.resolve(t[0]);if(i)return i}getLocalSymbols(){return Array.from(this.symbols.values())}getAllVisibleSymbols(){let e=new Map,t=this;for(;t;){for(let[i,n]of t.symbols)e.has(i)||e.set(i,n);t=t.parent}return Array.from(e.values())}};function dr(r){return r.endsWith(" def")}function Go(r){return!dr(r)&&r!=="package"&&r!=="import"&&r!=="comment"&&r!=="doc"&&r!=="alias"&&r!=="unknown"}var ge=class r{symbols=new Map;symbolsByUri=new Map;globalScope;ruleNames=[];constructor(){this.globalScope=new jo("__global__")}build(e,t){this.clearUri(e),this.ruleNames=t.parser.ruleNames,t.tree&&this.walkTree(t.tree,e,this.globalScope,"")}getSymbol(e){return this.symbols.get(e)}findByName(e){let t=[];for(let i of this.symbols.values())i.name===e&&t.push(i);return t}resolveAt(e,t,i,n){let a=this.findSymbolAtPosition(e,t,i);if(a)return a;let o=r.getWordAtPosition(n,t,i);if(!o)return;let l=this.findByName(o);return l.length>0?l[0]:void 0}static getWordAtPosition(e,t,i){let n=e.split(`
50
- `);if(t>=n.length)return;let a=n[t];if(i>=a.length)return;let o=/'([^']+)'/g,l;for(;(l=o.exec(a))!==null;){let x=l.index,R=x+l[0].length;if(i>=x&&i<R)return l[1]}let h=/[a-zA-Z_]\w*/g,f;for(;(f=h.exec(a))!==null;){let x=f.index,R=x+f[0].length;if(i>=x&&i<=R)return f[0]}}getSymbolsForUri(e){return this.symbolsByUri.get(e)??[]}getAllSymbols(){return Array.from(this.symbols.values())}getGlobalScope(){return this.globalScope}findSymbolAtPosition(e,t,i){let n=this.getSymbolsForUri(e),a,o=1/0;for(let l of n){let h=l.selectionRange;if(t>=h.start.line&&t<=h.end.line&&(t>h.start.line||i>=h.start.character)&&(t<h.end.line||i<=h.end.character)){let f=(h.end.line-h.start.line)*1e4+(h.end.character-h.start.character);f<o&&(a=l,o=f)}}return a}findReferences(e){return this.findByName(e)}findTextReferences(e,t,i){let n=[],a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=new RegExp(`(?<![a-zA-Z0-9_])${a}(?![a-zA-Z0-9_])`,"g"),l=i.split(`
51
- `);for(let h=0;h<l.length;h++){let f=l[h],x;for(;(x=o.exec(f))!==null;){let R=f.slice(0,x.index);R.includes("//")||R.includes("/*")||n.push({uri:t,range:{start:{line:h,character:x.index},end:{line:h,character:x.index+e.length}}})}}return n}clearUri(e){let t=this.symbolsByUri.get(e);if(t)for(let i of t)this.symbols.delete(i.qualifiedName);this.symbolsByUri.set(e,[])}static COMPOUND_RULES=new Set(["PerformActionUsage","SatisfyRequirementUsage","AssertConstraintUsage","IncludeUseCaseUsage"]);walkTree(e,t,i,n,a=!1){let o=this.getRuleName(e);if(a&&this.inferKind(o,e)!==void 0){for(let R=0;R<e.getChildCount();R++){let S=e.getChild(R);S instanceof u&&this.walkTree(S,t,i,n,!1)}return}let l=this.tryExtractSymbol(e,t,o,n),h=i;l&&(this.registerSymbol(l,t,i),h=new jo(l.qualifiedName,i));let f=r.COMPOUND_RULES.has(o);for(let x=0;x<e.getChildCount();x++){let R=e.getChild(x);R instanceof u&&this.walkTree(R,t,h,l?.qualifiedName??n,f&&l!==void 0)}}registerSymbol(e,t,i){let n=this.symbols.get(e.qualifiedName);if(n&&n.uri===t&&n.range.start.line===e.range.start.line)return;let a=e.qualifiedName.split("::");if(a.length>=3){let l=Math.floor(a.length/2);for(let h=1;h<=l;h++){let f=a.slice(-h).join("::"),x=a.slice(-2*h,-h).join("::");if(f===x)return}}this.symbols.set(e.qualifiedName,e);let o=this.symbolsByUri.get(t)??[];o.push(e),this.symbolsByUri.set(t,o),i.define(e)}getRuleName(e){let t=e.ruleIndex;if(t>=0&&t<this.ruleNames.length){let n=this.ruleNames[t];return n.charAt(0).toUpperCase()+n.slice(1)}let i=e.constructor.name;return i.endsWith("Context")?i.slice(0,-7):i}tryExtractSymbol(e,t,i,n){let a=this.inferKind(i,e);if(a===void 0)return;let o=this.extractName(e);if(!o)if(a==="objective")o="(anonymous objective)";else return;let l=n?`${n}::${o}`:o,h=Yg(e),f=this.extractNameRange(e)??h,x=this.extractTypeName(e),R=this.extractDocumentation(e);return{name:o,kind:a,qualifiedName:l,range:h,selectionRange:f,uri:t,typeName:x,documentation:R,parentQualifiedName:n||void 0,children:[]}}inferKind(e,t){let i=r.RULE_KIND_MAP.get(e);if(i!==void 0)return i;let n=e.toLowerCase();if(n.includes("partdefinition"))return"part def";if(n.includes("attributedefinition"))return"attribute def";if(n.includes("portdefinition"))return"port def";if(n.includes("connectiondefinition"))return"connection def";if(n.includes("interfacedefinition"))return"interface def";if(n.includes("actiondefinition"))return"action def";if(n.includes("statedefinition"))return"state def";if(n.includes("requirementdefinition"))return"requirement def";if(n.includes("constraintdefinition"))return"constraint def";if(n.includes("itemdefinition"))return"item def";if(n.includes("allocationdefinition"))return"allocation def";if(n.includes("usecasedefinition"))return"use case def";if(n.includes("enumerationdefinition"))return"enum def";if(n.includes("calculationdefinition")||n.includes("calcdefinition"))return"calc def";if(n.includes("viewdefinition"))return"view def";if(n.includes("viewpointdefinition"))return"viewpoint def";if(n.includes("metadatadefinition"))return"metadata def";if(n.includes("renderingdefinition"))return"rendering def";if(n.includes("analysiscasedefinition"))return"analysis case def";if(n.includes("verificationcasedefinition"))return"verification case def";if(n.includes("performactionusage"))return"action";if(n.includes("partusage"))return"part";if(n.includes("attributeusage"))return"attribute";if(n.includes("portusage"))return"port";if(n.includes("connectionusage"))return"connection";if(n.includes("interfaceusage"))return"interface";if(n.includes("actionusage"))return"action";if(n.includes("stateusage"))return"state";if(n.includes("requirementusage"))return"requirement";if(n.includes("constraintusage"))return"constraint";if(n.includes("itemusage"))return"item";if(n.includes("allocationusage"))return"allocation";if(n.includes("includeusecaseusage"))return"include use case";if(n.includes("usecaseusage"))return"use case";if(n.includes("viewusage"))return"view";if(n.includes("viewpointusage"))return"viewpoint";if(n.includes("concernusage"))return"concern";if(n.includes("concerndefinition"))return"concern def";if(n.includes("subjectusage"))return"subject";if(n.includes("actorusage"))return"actor usage";if(n.includes("stakeholderusage"))return"stakeholder";if(n.includes("objectiverequirementusage"))return"objective";if(n.includes("portionusage"))return"part";if(n.includes("satisfyrequirementusage"))return"requirement";if(n.includes("assertconstraintusage"))return"constraint"}static RULE_KIND_MAP=new Map([["Package","package"],["LibraryPackage","package"],["PartDefinition","part def"],["AttributeDefinition","attribute def"],["PortDefinition","port def"],["ConnectionDefinition","connection def"],["InterfaceDefinition","interface def"],["ActionDefinition","action def"],["StateDefinition","state def"],["RequirementDefinition","requirement def"],["ConstraintDefinition","constraint def"],["ItemDefinition","item def"],["AllocationDefinition","allocation def"],["UseCaseDefinition","use case def"],["EnumerationDefinition","enum def"],["CalculationDefinition","calc def"],["ViewDefinition","view def"],["ViewpointDefinition","viewpoint def"],["MetadataDefinition","metadata def"],["RenderingDefinition","rendering def"],["AnalysisCaseDefinition","analysis case def"],["VerificationCaseDefinition","verification case def"],["PartUsage","part"],["AttributeUsage","attribute"],["PortUsage","port"],["ConnectionUsage","connection"],["InterfaceUsage","interface"],["ActionUsage","action"],["StateUsage","state"],["RequirementUsage","requirement"],["ConstraintUsage","constraint"],["ItemUsage","item"],["AllocationUsage","allocation"],["UseCaseUsage","use case"],["EnumerationUsage","enum"],["CalcUsage","calc"],["ViewUsage","view"],["ViewpointUsage","viewpoint"],["PerformActionUsage","action"],["SatisfyRequirementUsage","requirement"],["AssertConstraintUsage","constraint"],["ConcernDefinition","concern def"],["ConcernUsage","concern"],["PortionUsage","part"],["SubjectUsage","subject"],["ActorUsage","actor usage"],["StakeholderUsage","stakeholder"],["ObjectiveRequirementUsage","objective"],["IncludeUseCaseUsage","include use case"]]);extractName(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof dt){let n=i.symbol;if(this.isIdentifierToken(n))return this.getTokenName(n)}if(i instanceof u){let n=this.getRuleName(i);if(n.toLowerCase().includes("identification")||n.toLowerCase().includes("declarationname")||n.toLowerCase().includes("qualifiedname")||n.toLowerCase()==="name"){let a=this.extractNameFromSubtree(i);if(a)return a}}}for(let t=0;t<Math.min(e.getChildCount(),5);t++){let i=e.getChild(t);if(i instanceof u){let n=this.extractName(i);if(n)return n}}}extractNameRange(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof dt&&this.isIdentifierToken(i.symbol)){let n=$g(i.symbol),a=i.symbol.text;return a&&a.startsWith("'")&&a.endsWith("'")?{start:{line:n.start.line,character:n.start.character+1},end:{line:n.end.line,character:n.end.character-1}}:n}if(i instanceof u){let n=this.extractNameRange(i);if(n)return n}}}extractTypeName(e){return this.extractTypeNameRecursive(e)}extractTypeNameRecursive(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(!(i instanceof u))continue;let n=this.getRuleName(i).toLowerCase();if(n.endsWith("body"))break;if(n.includes("featurespecialization")||n.includes("specializationpart")||n.includes("typing")||n.includes("typedby")||n.includes("ownedfeaturetyping")||n.includes("ownedspecialization")||n.includes("ownedsubclassification")||n.includes("subclassificationpart")){let o=this.extractQualifiedNameFromSubtree(i);if(o)return o}let a=this.extractTypeNameRecursive(i);if(a)return a}}extractQualifiedNameFromSubtree(e){let t=this.getRuleName(e).toLowerCase();if(t==="qualifiedname"||t==="ownedfeaturetyping"||t==="ownedspecialization"||t==="ownedsubclassification")return this.extractNameFromSubtree(e);for(let i=0;i<e.getChildCount();i++){let n=e.getChild(i);if(n instanceof u){let a=this.extractQualifiedNameFromSubtree(n);if(a)return a}}}extractDocumentation(e){for(let t=0;t<e.getChildCount();t++){let i=e.getChild(t);if(i instanceof u){let n=this.getRuleName(i).toLowerCase();if(n.includes("comment")||n.includes("doc")||n.includes("documentation"))return this.extractTextFromSubtree(i)}}}isIdentifierToken(e){let t=e.text;return t?t.startsWith("'")&&t.endsWith("'")&&t.length>2?!0:/^[a-zA-Z_]/.test(t)&&!this.isKeyword(t):!1}getTokenName(e){let t=e.text;if(t)return t.startsWith("'")&&t.endsWith("'")&&t.length>2?t.slice(1,-1):t}isKeyword(e){return new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]).has(e)}extractNameFromSubtree(e){let t=[];for(let i=0;i<e.getChildCount();i++){let n=e.getChild(i);if(n instanceof dt){if(this.isIdentifierToken(n.symbol)){let a=this.getTokenName(n.symbol);a&&t.push(a)}}else if(n instanceof u){let a=this.extractNameFromSubtree(n);a&&t.push(a)}}return t.length>0?t.join("::"):void 0}extractTextFromSubtree(e){let t=[];for(let i=0;i<e.getChildCount();i++){let n=e.getChild(i);if(n instanceof dt){if(n.symbol.text&&this.isIdentifierToken(n.symbol)){let o=this.getTokenName(n.symbol);o&&t.push(o)}}else if(n instanceof u){let a=this.extractTextFromSubtree(n);a&&t.push(a)}}return t.length>0?t.join("::"):void 0}};var Yd=class{constructor(e){this.documentManager=e}getModel(e,t,i){let n=Date.now(),a=this.documentManager.get(e);if(!a)return{version:-1};let o=new Set(i&&i.length>0?i:["elements","relationships","sequenceDiagrams","activityDiagrams","resolvedTypes","diagnostics"]),l=new ge;l.build(e,a);let h=this.documentManager.getText(e)??"",f={version:t};o.has("elements")&&(f.elements=this.convertToElementDTOs(l,e,h)),o.has("relationships")&&(f.relationships=this.extractRelationships(l,e,h)),o.has("sequenceDiagrams")&&(f.sequenceDiagrams=this.extractSequenceDiagrams(l,e)),o.has("activityDiagrams")&&(f.activityDiagrams=this.extractActivityDiagrams(l,e)),o.has("resolvedTypes")&&(f.resolvedTypes=this.extractResolvedTypes(l,e)),o.has("diagnostics")&&(f.diagnostics=this.extractSemanticDiagnostics(l,e,h));let x=l.getSymbolsForUri(e),R=x.filter(O=>O.typeName),S=this.documentManager.getParseTimeMs(e),M=Date.now()-n;return f.stats={totalElements:x.length,resolvedElements:R.length,unresolvedElements:x.length-R.length,parseTimeMs:S,modelBuildTimeMs:M},f}convertToElementDTOs(e,t,i){let n=e.getSymbolsForUri(t),a=new Map;for(let h of n)a.set(h.qualifiedName,h);let o=new Map;for(let h of n)if(h.parentQualifiedName&&a.has(h.parentQualifiedName)){let f=o.get(h.parentQualifiedName)??[];f.push(h),o.set(h.parentQualifiedName,f)}return n.filter(h=>!h.parentQualifiedName||!a.has(h.parentQualifiedName)).map(h=>this.symbolToElementDTO(h,o,i))}symbolToElementDTO(e,t,i){let a=(t.get(e.qualifiedName)??[]).filter(O=>O.qualifiedName!==e.qualifiedName).map(O=>this.symbolToElementDTO(O,t,i)),o={};e.typeName&&(e.kind==="port"||e.kind==="port def"?o.portType=e.typeName:o.partType=e.typeName),e.documentation&&(o.documentation=e.documentation);let l=this.extractDirection(e,i);l&&(o.direction=l);let h=this.extractMultiplicity(e,i);h&&(o.multiplicity=h);let f=this.extractModifier(e,i);f&&(o.modifier=f);let x=this.extractVisibility(e,i);x&&(o.visibility=x);let R=this.extractValue(e,i);R&&(o.value=R);let S=[];e.typeName&&S.push({type:"typing",source:e.name,target:e.typeName});let M=this.extractSpecialization(e,i);return M&&S.push({type:"specializes",source:e.name,target:M}),{type:e.kind,name:e.name,range:this.rangeToDTO(e.range),children:a,attributes:o,relationships:S}}extractRelationships(e,t,i){let n=e.getSymbolsForUri(t),a=[],o=i.split(`
52
- `);for(let l of n){if(l.kind==="package"||l.kind==="import"||l.kind==="comment"||l.kind==="doc")continue;l.typeName&&Go(l.kind)&&a.push({type:"typing",source:l.name,target:l.typeName});let h=this.extractSpecialization(l,i);if(h&&a.push({type:"specializes",source:l.name,target:h}),l.kind==="connection"){let R=this.extractConnectionEndpoints(l,i);R.length===2&&a.push({type:"connection",source:R[0],target:R[1],name:l.name})}if(l.kind==="allocation"){let R=this.extractConnectionEndpoints(l,i);R.length===2&&a.push({type:"allocation",source:R[0],target:R[1],name:l.name})}let f=this.getElementText(l,o),x=this.extractKeywordRelationships(l.name,f);a.push(...x)}return a}extractSequenceDiagrams(e,t){let i=e.getSymbolsForUri(t),n=[],a=this.documentManager.getText(t)??"",o=a.split(`
53
- `),l=new Set;for(let h of i){if(h.kind!=="action def"&&h.kind!=="action")continue;let f=this.getChildSymbols(h,e),x=[],R=[];for(let z of f)(z.kind==="part"||z.kind==="item")&&x.push({name:z.name,type:z.typeName??z.kind,range:this.rangeToDTO(z.range)});let S=this.getFullElementText(h,o),M=1,O=/\bsend\s+(\w[\w.]*)\s+(?:via|to)\s+(\w[\w.]*)/gi,W;for(;(W=O.exec(S))!==null;)R.push({name:`send_${M}`,from:h.name,to:W[2],payload:W[1],occurrence:M++,range:this.rangeToDTO(h.range)});let Y=/\baccept\s+(\w[\w.]*)\s+(?:via|from)\s+(\w[\w.]*)/gi;for(;(W=Y.exec(S))!==null;)R.push({name:`accept_${M}`,from:W[2],to:h.name,payload:W[1],occurrence:M++,range:this.rangeToDTO(h.range)});for(let z of f)if(z.kind==="action"){let L=this.getFullElementText(z,o),v=/\bsend\s+(\w[\w.]*)\s+(?:via|to)\s+(\w[\w.]*)/gi,D;for(;(D=v.exec(L))!==null;)R.push({name:z.name,from:D[2]??h.name,to:D[1]??"",payload:D[1]??"",occurrence:M++,range:this.rangeToDTO(z.range)});let I=/\baccept\s+(\w[\w.]*)\s+(?:via|from)\s+(\w[\w.]*)/gi;for(;(D=I.exec(L))!==null;)R.push({name:z.name,from:D[2]??"",to:h.name,payload:D[1]??"",occurrence:M++,range:this.rangeToDTO(z.range)})}(x.length>0||R.length>0)&&(n.push({name:h.name,participants:x,messages:R,range:this.rangeToDTO(h.range)}),R.length>0&&l.add(h.qualifiedName))}for(let h of i){if(l.has(h.qualifiedName)||h.kind!=="action def"&&h.kind!=="action")continue;let f=this.getChildSymbols(h,e);if(!f.some(W=>W.kind==="action"||W.kind==="action def"))continue;let R=this.extractSuccessions(h,a,o);if(R.length===0)continue;let S=f.filter(W=>W.kind==="action"||W.kind==="action def").map(W=>({name:W.name,type:W.typeName??"action",range:this.rangeToDTO(W.range)})),M=[],O=1;for(let W of R){if(W.from==="start"||W.to==="done")continue;let Y=W.guard??W.to;M.push({name:Y,from:W.from,to:W.to,payload:W.guard??"",occurrence:O++,range:W.range})}if(S.length>0||M.length>0){let W=n.findIndex(Y=>Y.name===h.name);W>=0&&n.splice(W,1),n.push({name:h.name,participants:S,messages:M,range:this.rangeToDTO(h.range)})}}return n}extractActivityDiagrams(e,t){let i=e.getSymbolsForUri(t),n=[],a=this.documentManager.getText(t)??"",o=a.split(`
54
- `);for(let l of i){if(l.kind!=="action def"&&l.kind!=="action")continue;let h=this.getChildSymbols(l,e),f=h.some(Y=>Y.kind==="action"||Y.kind==="action def");if(l.kind==="action"&&!f)continue;let x=[],R=[],S=[],M=[];for(let Y of h){let z=this.getElementText(Y,o);if(Y.kind==="action"||Y.kind==="action def"){let L="action",v=z.toLowerCase();v.includes("fork")?L="fork":v.includes("join")?L="join":v.includes("merge")?L="merge":v.includes("decide")&&(L="decision");let D=this.getChildSymbols(Y,e).filter(I=>I.kind==="action"||I.kind==="action def").map(I=>this.symbolToActionDTO(I,e,o));if(x.push({name:Y.name,type:L,isDefinition:Y.kind==="action def",range:this.rangeToDTO(Y.range),parent:l.name,children:D.map(I=>I.name),subActions:D.length>0?D:void 0}),L==="decision"){let I=this.extractDecisionBranches(Y,a);R.push({name:Y.name,condition:"",branches:I,range:this.rangeToDTO(Y.range)})}}if(Y.kind==="state"||Y.kind==="state def"){let L=z.toLowerCase().includes("initial")?"initial":z.toLowerCase().includes("final")?"final":"intermediate";M.push({name:Y.name,type:L,range:this.rangeToDTO(Y.range)})}}let O=this.extractSuccessions(l,a,o);S.push(...O);let W=this.getFullElementText(l,o);if(/\bdecide\s*;/.test(W)){let Y=/\bif\s+(.+?)\s+then\s+(\w+)\s*;/g,z=[],L;for(;(L=Y.exec(W))!==null;)z.push({condition:L[1].trim(),target:L[2]});z.length>0&&R.push({name:"decide",condition:"",branches:z,range:this.rangeToDTO(l.range)})}if(S.length>0){let Y=S.some(L=>L.from==="start"),z=S.some(L=>L.to==="done");Y&&x.unshift({name:"start",type:"initial",isDefinition:!1,range:this.rangeToDTO(l.range)}),z&&x.push({name:"done",type:"final",isDefinition:!1,range:this.rangeToDTO(l.range)}),S.some(L=>L.from==="decide")&&x.push({name:"decide",type:"decision",isDefinition:!1,range:this.rangeToDTO(l.range)})}(x.length>0||S.length>0||M.length>0)&&n.push({name:l.name,actions:x,decisions:R,flows:S,states:M,range:this.rangeToDTO(l.range)})}return n}extractResolvedTypes(e,t){let i=e.getSymbolsForUri(t),n={},a=this.documentManager.getText(t)??"";for(let o of i){if(!dr(o.kind)&&!o.typeName)continue;let l=[],h=this.extractSpecialization(o,a);h&&l.push(h),o.typeName&&!l.includes(o.typeName)&&l.push(o.typeName);let f=[...l],R=this.getChildSymbols(o,e).filter(S=>Go(S.kind)).map(S=>({name:S.name,kind:this.featureKindFromElementKind(S.kind),type:S.typeName,isDerived:!1,isReadonly:!1}));n[o.qualifiedName]={qualifiedName:o.qualifiedName,simpleName:o.name,kind:o.kind,isLibraryType:!1,specializationChain:f,specializes:l,features:R}}return n}extractSemanticDiagnostics(e,t,i){let n=e.getSymbolsForUri(t),a=[],o=new Set(e.getAllSymbols().map(l=>l.name));for(let l of n)l.typeName&&!o.has(l.typeName)&&a.push({code:"unresolved-type",message:`Type '${l.typeName}' could not be resolved in the current scope`,severity:"warning",range:this.rangeToDTO(l.selectionRange),elementName:l.name}),l.kind==="enum def"&&(this.getChildSymbols(l,e).some(x=>x.kind==="enum"||x.kind==="attribute")||a.push({code:"empty-enum",message:`Enumeration '${l.name}' has no enum values defined`,severity:"info",range:this.rangeToDTO(l.range),elementName:l.name}));return a}rangeToDTO(e){return{start:{line:e.start.line,character:e.start.character},end:{line:e.end.line,character:e.end.character}}}getChildSymbols(e,t){return t.getSymbolsForUri(e.uri).filter(n=>n.parentQualifiedName===e.qualifiedName)}getElementText(e,t){let i=e.range.start.line,n=Math.min(i+2,e.range.end.line,t.length-1);return t.slice(i,n+1).join(`
55
- `)}getFullElementText(e,t){let i=e.range.start.line,n=Math.min(e.range.end.line,t.length-1);return t.slice(i,n+1).join(`
56
- `)}extractDirection(e,t){if(e.kind!=="port"&&e.kind!=="port def")return;let i=t.split(`
57
- `),n=this.getElementText(e,i);if(/\binout\b/.test(n))return"inout";if(/\bin\b/.test(n))return"in";if(/\bout\b/.test(n))return"out"}extractMultiplicity(e,t){let i=t.split(`
58
- `),a=this.getElementText(e,i).match(/\[([^\]]+)\]/);return a?a[1]:void 0}extractModifier(e,t){let i=t.split(`
59
- `),n=this.getElementText(e,i),a=[];return/\babstract\b/.test(n)&&a.push("abstract"),/\breadonly\b/.test(n)&&a.push("readonly"),/\bderived\b/.test(n)&&a.push("derived"),/\bvariation\b/.test(n)&&a.push("variation"),/\bindividual\b/.test(n)&&a.push("individual"),a.length>0?a.join(", "):void 0}extractVisibility(e,t){let i=t.split(`
60
- `),n=this.getElementText(e,i);if(/\bprivate\b/.test(n))return"private";if(/\bprotected\b/.test(n))return"protected";if(/\bpublic\b/.test(n))return"public"}extractValue(e,t){if(e.kind!=="attribute")return;let i=t.split(`
61
- `),a=this.getElementText(e,i).match(/[:=]=?\s*([^;{}\n]+)/);if(a){let o=a[1].trim();if(!o.includes("def")&&o.length<100)return o}}extractSpecialization(e,t){let i=t.split(`
62
- `),n=this.getElementText(e,i),a=n.match(/:>\s*([A-Za-z_][\w:]*)/);if(a)return a[1];let o=n.match(/\bspecializes\s+([A-Za-z_][\w:]*)/);if(o)return o[1]}extractConnectionEndpoints(e,t){let i=t.split(`
63
- `),n=this.getElementText(e,i),a=[],o=n.match(/\bconnect\s+(\w[\w.]*)\s+to\s+(\w[\w.]*)/);if(o)return a.push(o[1],o[2]),a;let l=/\bend\s+(\w[\w.]*)\s*/g,h;for(;(h=l.exec(n))!==null;)a.push(h[1]);return a}extractKeywordRelationships(e,t){let i=[],n=t.match(/\bsubsets\s+([A-Za-z_][\w:]*)/);n&&i.push({type:"subsetting",source:e,target:n[1]});let a=t.match(/\bredefines\s+([A-Za-z_][\w:]*)/);a&&i.push({type:"redefinition",source:e,target:a[1]});let o=t.match(/\bsatisfy\s+(?:requirement\s+)?([A-Za-z_][\w:]*)/);o&&i.push({type:"satisfy",source:e,target:o[1]});let l=t.match(/\bverify\s+(?:requirement\s+)?([A-Za-z_][\w:]*)/);return l&&i.push({type:"verify",source:e,target:l[1]}),i}extractDecisionBranches(e,t){let i=t.split(`
64
- `),n=this.getElementText(e,i),a=[],o=/\bif\s+([^{;]+?)\s+then\s+([A-Za-z_]\w*)/g,l;for(;(l=o.exec(n))!==null;)a.push({condition:l[1].trim(),target:l[2]});let h=n.match(/\belse\s+([A-Za-z_]\w*)/);return h&&a.push({condition:"else",target:h[1]}),a}extractSuccessions(e,t,i){let n=this.getFullElementText(e,i),a=[],o=new Set,l=this.rangeToDTO(e.range),h=(I,J,te)=>{if(I===J)return;let le=`${I}->${J}`;if(o.has(le))return;o.add(le);let Ce={from:I,to:J,range:l};te&&(Ce.guard=te),a.push(Ce)};function f(I,J){let te=0;for(let le=0;le<J&&le<I.length;le++)I[le]==="{"?te++:I[le]==="}"&&te--;return te}let x=n.indexOf("{"),R=x>=0?f(n,x+1):1,S=I=>{let J=I.lastIndexOf("::");return J>=0?I.substring(J+2):I},M=[],O,W=/\bfirst\s+(?:'([^']+)'|(\w+(?:::\w+)*))/g;for(;(O=W.exec(n))!==null;){if(f(n,O.index)!==R)continue;let I=S(O[1]||O[2]);M.push({type:"first",name:I,index:O.index})}let Y=/\bthen\s+(?:action\s+)?(?:'([^']+)'|(\w+(?:::\w+)*))/g;for(;(O=Y.exec(n))!==null;){if(f(n,O.index)!==R)continue;let I=n.substring(Math.max(0,O.index-100),O.index);if(/\bif\b[^;]*$/i.test(I))continue;let J=S(O[1]||O[2]);J!=="if"&&M.push({type:"then",name:J,index:O.index})}M.sort((I,J)=>I.index-J.index);let z=new Set;for(let I=0;I<M.length;I++)if(M[I].type==="first"){let J=[M[I].name];z.add(I);for(let te=I+1;te<M.length&&M[te].type==="then";te++)J.push(M[te].name),z.add(te);for(let te=0;te<J.length-1;te++)h(J[te],J[te+1])}let L=M.filter((I,J)=>!z.has(J)&&I.type==="then");if(L.length>0)for(let I=0;I<L.length-1;I++)h(L[I].name,L[I+1].name);if(a.length>0){let I=new Set(a.map(Ce=>Ce.to)),J=new Set(a.map(Ce=>Ce.from)),te=a.map(Ce=>Ce.from).filter(Ce=>Ce!=="start"&&Ce!=="done"&&!I.has(Ce)),le=a.map(Ce=>Ce.to).filter(Ce=>Ce!=="start"&&Ce!=="done"&&!J.has(Ce));te.length>0&&h("start",te[0]),le.length>0&&h(le[le.length-1],"done")}let v=/\bsuccession\s+(?:first\s+)?(?:'([^']+)'|(\w+(?:::\w+)*))\s+then\s+(?:'([^']+)'|(\w+(?:::\w+)*))/g;for(;(O=v.exec(n))!==null;)h(S(O[1]||O[2]),S(O[3]||O[4]));let D=/\bsuccession\s+flow\s+from\s+(\w+)(?:\.\w+)?\s+to\s+(\w+)(?:\.\w+)?/g;for(;(O=D.exec(n))!==null;)h(O[1],O[2]);if(/\bdecide\s*;/.test(n)){for(let le=a.length-1;le>=0;le--)a[le].from==="decide"&&(o.delete(`decide->${a[le].to}`),a.splice(le,1));let I=/\bif\s+(.+?)\s+then\s+(?:'([^']+)'|(\w+))\s*;/g,J=[];for(;(O=I.exec(n))!==null;){let le=O[2]||O[3];h("decide",le,O[1].trim()),J.push(le)}let te=/\bmerge\s+(?:'([^']+)'|(\w+))\s*;/g;for(;(O=te.exec(n))!==null;){let le=O[1]||O[2];for(let Mt of J)h(Mt,le);let Ce=M.filter(Mt=>Mt.type==="then"&&Mt.index>O.index);Ce.length>0?h(le,Ce[0].name):le!=="done"&&h(le,"done")}}return a}featureKindFromElementKind(e){switch(e){case"attribute":case"attribute def":return"attribute";case"port":case"port def":return"port";case"action":case"action def":return"action";case"state":case"state def":return"state";default:return"reference"}}symbolToActionDTO(e,t,i){let n=this.getElementText(e,i),a="action",o=n.toLowerCase();return o.includes("fork")?a="fork":o.includes("join")?a="join":o.includes("merge")?a="merge":o.includes("decide")&&(a="decision"),{name:e.name,type:a,isDefinition:e.kind==="action def",range:this.rangeToDTO(e.range)}}};var $t=vt(mt(),1);var Jg=new Set(["perform","include","accept","send","assign","assert"]),q8=["action","state","calc"],Xg=`(?:${q8.join("|")})`;function gi(r,e){let t=0,i=0;for(let n=0;n<e&&n<r.length;n++)r[n]===`
65
- `?(t++,i=0):i++;return $t.Position.create(t,i)}function Zg(r,e){let t=0;for(let i=0;i<r.length;i++){if(t===e.line)return i+e.character;r[i]===`
66
- `&&t++}return r.length}var Jd=class{constructor(e){this.documentManager=e}symbolTable=new ge;prepareCallHierarchy(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);this.symbolTable.build(t,i);let a=n?this.symbolTable.resolveAt(t,e.position.line,e.position.character,n):this.symbolTable.findSymbolAtPosition(t,e.position.line,e.position.character);return!a||!new Set(["action def","action","state def","state","calc def","calc","use case def","use case"]).has(a.kind)?null:[this.toCallHierarchyItem(a)]}provideIncomingCalls(e){this.buildAllSymbols();let i=e.item.name,n=[];for(let a of this.documentManager.getUris()){let o=this.documentManager.getText(a);if(!o)continue;let l=this.symbolTable.getSymbolsForUri(a);for(let x of Jg){let R=new RegExp(`\\b${x}\\s+${this.escapeRegex(i)}\\b`,"g"),S;for(;(S=R.exec(o))!==null;){let M=gi(o,S.index),O=this.findEnclosingBehavioral(l,M.line);O&&n.push({from:this.toCallHierarchyItem(O),fromRanges:[$t.Range.create(M,gi(o,S.index+S[0].length))]})}}let h=new RegExp(`\\b${Xg}\\s+\\w+\\s*:\\s*${this.escapeRegex(i)}\\b`,"g"),f;for(;(f=h.exec(o))!==null;){let x=gi(o,f.index),R=this.findEnclosingBehavioral(l,x.line,1);R&&n.push({from:this.toCallHierarchyItem(R),fromRanges:[$t.Range.create(x,gi(o,f.index+f[0].length))]})}}return n}provideOutgoingCalls(e){let t=e.item;this.buildAllSymbols();let i=this.documentManager.getText(t.uri);if(!i)return[];let n=[],o=this.symbolTable.getSymbolsForUri(t.uri).find(S=>S.name===t.name&&S.selectionRange.start.line===t.selectionRange.start.line);if(!o)return[];let l=Zg(i,o.range.start),h=Zg(i,o.range.end),f=i.slice(l,h);for(let S of Jg){let M=new RegExp(`\\b${S}\\s+(\\w+)`,"g"),O;for(;(O=M.exec(f))!==null;){let W=O[1],Y=this.symbolTable.findByName(W);if(Y.length>0){let z=l+O.index;n.push({to:this.toCallHierarchyItem(Y[0]),fromRanges:[$t.Range.create(gi(i,z),gi(i,z+O[0].length))]})}}}let x=new RegExp(`\\b${Xg}\\s+\\w+\\s*:\\s*(\\w+)`,"g"),R;for(;(R=x.exec(f))!==null;){let S=R[1],M=this.symbolTable.findByName(S);if(M.length>0){let O=l+R.index;n.push({to:this.toCallHierarchyItem(M[0]),fromRanges:[$t.Range.create(gi(i,O),gi(i,O+R[0].length))]})}}return n}buildAllSymbols(){for(let e of this.documentManager.getUris()){let t=this.documentManager.get(e);t&&this.symbolTable.build(e,t)}}findEnclosingBehavioral(e,t,i=0){let n=[];for(let a of e){let o=a.range;t>=o.start.line&&t<=o.end.line&&n.push({sym:a,size:o.end.line-o.start.line})}return n.sort((a,o)=>a.size-o.size),n[i]?.sym}toCallHierarchyItem(e){return{name:e.name,kind:e.kind.includes("action")?$t.SymbolKind.Method:e.kind.includes("state")?$t.SymbolKind.Enum:e.kind.includes("calc")?$t.SymbolKind.Function:$t.SymbolKind.Event,uri:e.uri,range:e.range,selectionRange:e.selectionRange,detail:e.kind}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};var Zd=vt(mt(),1),Xd=class{provideCodeActions(e){let t=[],i=e.textDocument.uri;for(let n of e.context.diagnostics){let a=this.tryKeywordTypoFix(i,n);a&&t.push(a)}return t}tryKeywordTypoFix(e,t){let i=t.message.match(/Unknown keyword '(\w+)'\.\s*Did you mean '(\w+)'\?/);if(!i)return;let[,n,a]=i,o={changes:{[e]:[Zd.TextEdit.replace(t.range,a)]}};return{title:`Fix typo: '${n}' \u2192 '${a}'`,kind:Zd.CodeActionKind.QuickFix,diagnostics:[t],isPreferred:!0,edit:o}}};var e2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideCodeLenses(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return[];this.symbolTable.build(t,i);let n=this.symbolTable.getSymbolsForUri(t),a=[];for(let o of n){if(!dr(o.kind)&&o.kind!=="package")continue;let l=this.countReferences(o),h={title:l===1?"1 reference":`${l} references`,command:"sysml.findReferences",arguments:[t,{line:o.selectionRange.start.line,character:o.selectionRange.start.character}]};a.push({range:o.selectionRange,command:h})}return a}countReferences(e){let t=0;for(let i of this.documentManager.getUris()){let n=this.documentManager.getText(i);n&&(t+=this.symbolTable.findTextReferences(e.name,i,n).length)}return t}};var _=vt(mt(),1),j8=[{label:"part def",kind:_.CompletionItemKind.Class,detail:"Part definition",documentation:"Defines a type of part that can be instantiated",insertText:`part def \${1:Name} {
67
- $0
68
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"action def",kind:_.CompletionItemKind.Function,detail:"Action definition",documentation:"Defines a type of action/behavior",insertText:`action def \${1:Name} {
69
- $0
70
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"state def",kind:_.CompletionItemKind.Enum,detail:"State definition",documentation:"Defines a state machine",insertText:`state def \${1:Name} {
71
- $0
72
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"requirement def",kind:_.CompletionItemKind.Interface,detail:"Requirement definition",documentation:"Defines a type of requirement",insertText:`requirement def \${1:Name} {
73
- doc /* \${2:description} */
74
- $0
75
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"constraint def",kind:_.CompletionItemKind.Constant,detail:"Constraint definition",documentation:"Defines a reusable constraint",insertText:`constraint def \${1:Name} {
76
- $0
77
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"attribute def",kind:_.CompletionItemKind.Property,detail:"Attribute definition",documentation:"Defines a type of attribute/value",insertText:`attribute def \${1:Name} {
78
- $0
79
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"item def",kind:_.CompletionItemKind.Class,detail:"Item definition",documentation:"Defines a type of item that can flow",insertText:`item def \${1:Name} {
80
- $0
81
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"port def",kind:_.CompletionItemKind.Interface,detail:"Port definition",documentation:"Defines a type of port for connections",insertText:`port def \${1:Name} {
82
- $0
83
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"interface def",kind:_.CompletionItemKind.Interface,detail:"Interface definition",documentation:"Defines an interface contract",insertText:`interface def \${1:Name} {
84
- $0
85
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"connection def",kind:_.CompletionItemKind.Interface,detail:"Connection definition",documentation:"Defines a type of connection",insertText:`connection def \${1:Name} {
86
- $0
87
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"allocation def",kind:_.CompletionItemKind.Interface,detail:"Allocation definition",documentation:"Defines a type of allocation",insertText:`allocation def \${1:Name} {
88
- $0
89
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"use case def",kind:_.CompletionItemKind.Event,detail:"Use case definition",documentation:"Defines a use case",insertText:`use case def \${1:Name} {
90
- $0
91
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"view def",kind:_.CompletionItemKind.Struct,detail:"View definition",documentation:"Defines a view of the model",insertText:`view def \${1:Name} {
92
- $0
93
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"viewpoint def",kind:_.CompletionItemKind.Struct,detail:"Viewpoint definition",documentation:"Defines a viewpoint for stakeholders",insertText:`viewpoint def \${1:Name} {
94
- $0
95
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"enum def",kind:_.CompletionItemKind.Enum,detail:"Enumeration definition",documentation:"Defines an enumeration type",insertText:"enum def ${1:Name} {\n ${2:value1};\n ${3:value2};\n}",insertTextFormat:_.InsertTextFormat.Snippet},{label:"calc def",kind:_.CompletionItemKind.Function,detail:"Calculation definition",documentation:"Defines a calculation/function",insertText:`calc def \${1:Name} {
96
- $0
97
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"metadata def",kind:_.CompletionItemKind.TypeParameter,detail:"Metadata definition",documentation:"Defines custom metadata/stereotypes",insertText:`metadata def \${1:Name} {
98
- $0
99
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"part",kind:_.CompletionItemKind.Variable,detail:"Part usage",documentation:"Creates a part instance",insertText:"part ${1:name} : ${2:Type};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"action",kind:_.CompletionItemKind.Function,detail:"Action usage",documentation:"Creates an action/behavior instance",insertText:`action \${1:name} {
100
- $0
101
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"state",kind:_.CompletionItemKind.Enum,detail:"State usage",documentation:"Creates a state instance",insertText:`state \${1:name} {
102
- $0
103
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"attribute",kind:_.CompletionItemKind.Property,detail:"Attribute usage",documentation:"Creates an attribute/value",insertText:"attribute ${1:name} : ${2:Type};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"port",kind:_.CompletionItemKind.Interface,detail:"Port usage",documentation:"Creates a port",insertText:"port ${1:name} : ${2:PortType};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"item",kind:_.CompletionItemKind.Variable,detail:"Item usage",documentation:"Creates an item instance",insertText:"item ${1:name} : ${2:Type};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"requirement",kind:_.CompletionItemKind.Interface,detail:"Requirement usage",documentation:"Creates a requirement instance",insertText:`requirement \${1:name} {
104
- $0
105
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"connection",kind:_.CompletionItemKind.Reference,detail:"Connection usage",documentation:"Creates a connection between parts",insertText:"connection ${1:name} connect ${2:source} to ${3:target};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"ref",kind:_.CompletionItemKind.Reference,detail:"Reference usage",documentation:"Creates a reference to another element",insertText:"ref ${1:name} : ${2:Type};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"package",kind:_.CompletionItemKind.Module,detail:"Package",documentation:"Creates a namespace container",insertText:`package \${1:Name} {
106
- $0
107
- }`,insertTextFormat:_.InsertTextFormat.Snippet},{label:"import",kind:_.CompletionItemKind.Module,detail:"Import",documentation:"Imports elements from another namespace",insertText:"import ${1:namespace}::*;",insertTextFormat:_.InsertTextFormat.Snippet},{label:"alias",kind:_.CompletionItemKind.Reference,detail:"Alias",documentation:"Creates an alias for an element",insertText:"alias ${1:newName} for ${2:existingElement};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"connect",kind:_.CompletionItemKind.Operator,detail:"Connection",documentation:"Connects two endpoints",insertText:"connect ${1:source} to ${2:target};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"bind",kind:_.CompletionItemKind.Operator,detail:"Binding",documentation:"Binds two features together",insertText:"bind ${1:source} = ${2:target};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"flow",kind:_.CompletionItemKind.Operator,detail:"Flow",documentation:"Defines item flow between parts",insertText:"flow of ${1:ItemType} from ${2:source} to ${3:target};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"satisfy",kind:_.CompletionItemKind.Operator,detail:"Satisfaction",documentation:"Indicates requirement satisfaction",insertText:"satisfy ${1:requirement} by ${2:element};",insertTextFormat:_.InsertTextFormat.Snippet},{label:"abstract",kind:_.CompletionItemKind.Keyword,detail:"Abstract modifier",documentation:"Makes element abstract"},{label:"readonly",kind:_.CompletionItemKind.Keyword,detail:"Readonly modifier",documentation:"Makes attribute readonly"},{label:"derived",kind:_.CompletionItemKind.Keyword,detail:"Derived modifier",documentation:"Indicates value is derived/calculated"},{label:"in",kind:_.CompletionItemKind.Keyword,detail:"Input direction",documentation:"Port/parameter receives input"},{label:"out",kind:_.CompletionItemKind.Keyword,detail:"Output direction",documentation:"Port/parameter provides output"},{label:"inout",kind:_.CompletionItemKind.Keyword,detail:"Bidirectional direction",documentation:"Port/parameter is bidirectional"},{label:"doc",kind:_.CompletionItemKind.Text,detail:"Documentation",documentation:"Creates a documentation comment",insertText:"doc /* ${1:description} */",insertTextFormat:_.InsertTextFormat.Snippet},{label:"comment",kind:_.CompletionItemKind.Text,detail:"Comment",documentation:"Creates a comment element",insertText:"comment /* ${1:text} */",insertTextFormat:_.InsertTextFormat.Snippet}],t2=class{constructor(e){this.documentManager=e}provideCompletions(e){let t=[];for(let i of j8){let n={label:i.label,kind:i.kind,detail:i.detail,documentation:i.documentation,data:i.label};i.insertText&&(n.insertText=i.insertText,n.insertTextFormat=i.insertTextFormat),t.push(n)}return t}resolveCompletion(e){return e}};import{closeSync as G8,existsSync as eR,openSync as W8,readdirSync as z8,readSync as K8,statSync as Q8}from"node:fs";import{join as $8,resolve as tR}from"node:path";import{pathToFileURL as Y8}from"node:url";var J8=/^(?:standard\s+)?(?:library\s+)?package\s+(?:<\w+>\s+)?(\w+)/m,Wo;function X8(r){let e=new Map,t=i=>{let n;try{n=z8(i)}catch{return}for(let a of n){let o=$8(i,a);try{if(Q8(o).isDirectory())t(o);else if(a.endsWith(".sysml")||a.endsWith(".kerml")){let h=W8(o,"r"),f=Buffer.alloc(512);K8(h,f,0,512,0),G8(h);let x=f.toString("utf8"),R=J8.exec(x);R&&e.set(R[1],Y8(o).href)}}catch{}}};return t(r),e}function u4(r,e){let t;if(e&&e.trim()){let i=tR(e);eR(i)&&(t=i)}if(!t){let i=tR(r,"..","..","sysml.library");eR(i)&&(t=i)}return t?(Wo=X8(t),Wo.size):(Wo=new Map,0)}function zo(r){if(!Wo)return;let e=r.split("::")[0];return Wo.get(e)}var r2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideDefinition(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.findSymbolAtPosition(e.textDocument.uri,e.position.line,e.position.character);if(n){if(n.typeName){let l=this.symbolTable.findByName(n.typeName);if(l.length>0)return{uri:l[0].uri,range:l[0].selectionRange};let h=zo(n.typeName);if(h)return{uri:h,range:{start:{line:0,character:0},end:{line:0,character:0}}}}return{uri:n.uri,range:n.selectionRange}}let a=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(a)return{uri:a.uri,range:a.selectionRange};let o=ge.getWordAtPosition(i,e.position.line,e.position.character);if(o){let l=zo(o);if(l)return{uri:l,range:{start:{line:0,character:0},end:{line:0,character:0}}}}return null}};var c4=vt(mt(),1);var rR=/\bimport\s+([\w]+(?:::[\w*]+)*)\s*;/gm,i2=class{constructor(e,t){this.documentManager=e;this.documents=t}symbolTable=new ge;provideDocumentLinks(e){let t=e.textDocument.uri,i=this.documents.get(t);if(!i)return[];let n=i.getText(),a=[];for(let l of this.documentManager.getUris()){let h=this.documentManager.get(l);h&&this.symbolTable.build(l,h)}let o;for(rR.lastIndex=0;(o=rR.exec(n))!==null;){let l=o[1],f=o.index+7,x=f+l.length,R=i.positionAt(f),S=i.positionAt(x),M=l.replace(/::?\*$/,""),O=this.resolveImportTarget(M);O?a.push({range:c4.Range.create(R,S),target:O.uri,tooltip:`Go to ${M}`}):a.push({range:c4.Range.create(R,S),tooltip:`${M} (unresolved)`})}return a}resolveImportTarget(e){let t=this.symbolTable.getSymbol(e);if(t)return{uri:t.uri};let i=e.split("::")[0],n=this.symbolTable.findByName(i);if(n.length>0)return{uri:n[0].uri};let a=zo(e);if(a)return{uri:a}}};var it=vt(mt(),1);var n2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideDocumentSymbols(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return[];this.symbolTable.build(e.textDocument.uri,t);let i=this.symbolTable.getSymbolsForUri(e.textDocument.uri);return this.buildHierarchy(i)}buildHierarchy(e){let t=[],i=new Map,n=new Map;for(let o of e)if(i.set(o.qualifiedName,o),!o.parentQualifiedName)t.push(o);else{let l=n.get(o.parentQualifiedName)??[];l.push(o),n.set(o.parentQualifiedName,l)}let a=o=>{let l=n.get(o.qualifiedName)??[];return{name:o.name,detail:o.kind,kind:this.getSymbolKind(o.kind),range:o.range,selectionRange:o.selectionRange,children:l.map(a)}};return t.map(a)}getSymbolKind(e){switch(e){case"package":return it.SymbolKind.Package;case"part def":case"part":return it.SymbolKind.Class;case"attribute def":case"attribute":return it.SymbolKind.Property;case"port def":case"port":return it.SymbolKind.Interface;case"action def":case"action":return it.SymbolKind.Method;case"state def":case"state":return it.SymbolKind.Enum;case"requirement def":case"requirement":return it.SymbolKind.Object;case"constraint def":case"constraint":return it.SymbolKind.Constant;case"connection def":case"connection":case"interface def":case"interface":return it.SymbolKind.Interface;case"item def":case"item":return it.SymbolKind.Struct;case"enum def":case"enum":return it.SymbolKind.Enum;case"calc def":case"calc":return it.SymbolKind.Function;case"use case def":case"use case":return it.SymbolKind.Event;case"view def":case"view":case"viewpoint def":case"viewpoint":return it.SymbolKind.Namespace;case"comment":case"doc":return it.SymbolKind.String;case"import":case"alias":return it.SymbolKind.Module;default:return it.SymbolKind.Variable}}};var h4=vt(mt(),1),s2=class{constructor(e){this.documentManager=e}provideFoldingRanges(e){let t=this.documentManager.getText(e.textDocument.uri);if(!t)return[];let i=[],n=t.split(`
108
- `),a=[],o;for(let l=0;l<n.length;l++){let h=n[l];h.includes("/*")&&!h.includes("*/")?o=l:o!==void 0&&h.includes("*/")&&(i.push({startLine:o,endLine:l,kind:h4.FoldingRangeKind.Comment}),o=void 0);for(let f of h)if(f==="{")a.push(l);else if(f==="}"){let x=a.pop();x!==void 0&&l>x&&i.push({startLine:x,endLine:l,kind:h4.FoldingRangeKind.Region})}}return i}};var Ko=vt(mt(),1),a2=class{constructor(e){this.documents=e}provideDocumentFormatting(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=e.options.tabSize??4,a=e.options.insertSpaces??!0?" ".repeat(i):" ",o=t.getText(),l=this.formatSysML(o,a);return l===o?[]:[Ko.TextEdit.replace(Ko.Range.create(0,0,t.lineCount,0),l)]}provideRangeFormatting(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=e.options.tabSize??4,a=e.options.insertSpaces??!0?" ".repeat(i):" ",o=t.getText(e.range),l=this.formatSysML(o,a);return l===o?[]:[Ko.TextEdit.replace(e.range,l)]}formatSysML(e,t){let i=e.split(`
109
- `),n=[],a=0,o=!1;for(let l=0;l<i.length;l++){let h=i[l];if(h=h.trimEnd(),h.trim()===""){!o&&n.length>0&&(n.push(""),o=!0);continue}o=!1;let f=h.trim(),x=(f.match(/^[}\]]+/)||[""])[0].length;x>0&&(a=Math.max(0,a-x));let R=f.startsWith("//"),S=!f.startsWith("/*")&&(f.startsWith("*")||f.startsWith("*/")),M;if(S)M=t.repeat(a)+" "+f;else if(R)M=t.repeat(a)+f;else{let O=this.normalizeSpacing(f);M=t.repeat(a)+O}if(n.push(M),!R){let O=this.countOutsideStrings(f,"{")+this.countOutsideStrings(f,"["),W=this.countOutsideStrings(f,"}")+this.countOutsideStrings(f,"]");a+=O-W+x,a=Math.max(0,a)}}for(;n.length>0&&n[n.length-1]==="";)n.pop();return n.push(""),n.join(`
110
- `)}normalizeSpacing(e){if(e.startsWith('"')||e.startsWith("'"))return e;let t=e;return t=t.replace(/\s*{/g," {"),t=t.replace(/;\s*(\S)/g,"; $1"),t=t.replace(/ +/g,(i,n)=>(t.substring(0,n).match(/"/g)||[]).length%2!==0?i:" "),t}countOutsideStrings(e,t){let i=0,n=!1,a="";for(let o=0;o<e.length;o++){let l=e[o];if(n)l===a&&e[o-1]!=="\\"&&(n=!1);else if(l==='"'||l==="'")n=!0,a=l;else if(l==="/"&&o+1<e.length){if(e[o+1]==="/"||e[o+1]==="*")break}else l===t&&i++}return i}};var iR=vt(mt(),1);var o2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideHover(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return null;let a=[],o=n.kind;return a.push(`**${o}** \`${n.name}\``),n.qualifiedName!==n.name&&a.push(`
111
- Fully qualified: \`${n.qualifiedName}\``),n.typeName&&a.push(`
112
- Type: \`${n.typeName}\``),n.documentation&&a.push(`
113
- ---
114
- ${n.documentation}`),{contents:{kind:iR.MarkupKind.Markdown,value:a.join(`
115
- `)},range:n.selectionRange}}};var Ri=vt(mt(),1);var l2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideInlayHints(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return[];this.symbolTable.build(t,i);let n=this.symbolTable.getSymbolsForUri(t),a=[],{range:o}=e;for(let l of n)l.selectionRange.end.line<o.start.line||l.selectionRange.start.line>o.end.line||(Go(l.kind)&&l.typeName&&a.push({position:Ri.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`: ${l.typeName}`,kind:Ri.InlayHintKind.Type,paddingLeft:!1,paddingRight:!0}),dr(l.kind)&&l.typeName&&a.push({position:Ri.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`:> ${l.typeName}`,kind:Ri.InlayHintKind.Type,paddingLeft:!0,paddingRight:!0}),l.kind==="package"&&l.children.length>0&&a.push({position:Ri.Position.create(l.selectionRange.end.line,l.selectionRange.end.character),label:`(${l.children.length} members)`,kind:Ri.InlayHintKind.Parameter,paddingLeft:!0,paddingRight:!1}));return a}};var u2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideLinkedEditingRanges(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);if(!n)return null;this.symbolTable.build(t,i);let a=this.symbolTable.resolveAt(t,e.position.line,e.position.character,n);if(!a)return null;let l=this.symbolTable.findReferences(a.name).filter(h=>h.uri===t);return l.length<=1?null:{ranges:l.map(h=>h.selectionRange)}}};var c2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideReferences(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return[];let i=this.documentManager.getText(e.textDocument.uri);if(!i)return[];this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return[];let a=[],o=new Set;for(let l of this.documentManager.getUris()){let h=this.documentManager.getText(l);if(!h)continue;let f=this.documentManager.get(l);f&&this.symbolTable.build(l,f);let x=this.symbolTable.findTextReferences(n.name,l,h);for(let R of x){let S=`${R.uri}:${R.range.start.line}:${R.range.start.character}`;o.has(S)||(o.add(S),!(!e.context.includeDeclaration&&R.uri===n.uri&&R.range.start.line===n.selectionRange.start.line&&R.range.start.character===n.selectionRange.start.character)&&a.push({uri:R.uri,range:R.range}))}}return a}};var h2=class{constructor(e){this.documentManager=e}symbolTable=new ge;prepareRename(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);return n?n.selectionRange:null}provideRename(e){let t=this.documentManager.get(e.textDocument.uri);if(!t)return null;let i=this.documentManager.getText(e.textDocument.uri);if(!i)return null;this.symbolTable.build(e.textDocument.uri,t);let n=this.symbolTable.resolveAt(e.textDocument.uri,e.position.line,e.position.character,i);if(!n)return null;let a=[],o=n.name,l=e.newName,h=this.symbolTable.findReferences(o);for(let R of h)R.uri===e.textDocument.uri&&a.push({range:R.selectionRange,newText:l});let f=i.split(`
116
- `),x=new RegExp(`\\b${this.escapeRegex(o)}\\b`,"g");for(let R=0;R<f.length;R++){let S;for(;(S=x.exec(f[R]))!==null;){let M={start:{line:R,character:S.index},end:{line:R,character:S.index+o.length}};a.some(O=>O.range.start.line===R&&O.range.start.character===S.index)||a.push({range:M,newText:l})}}return a.length===0?null:{changes:{[e.textDocument.uri]:a}}}escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}};var on=vt(mt(),1),d2=class{constructor(e){this.documents=e}provideSelectionRanges(e){let t=this.documents.get(e.textDocument.uri);if(!t)return[];let i=t.getText();return e.positions.map(n=>{let a=t.offsetAt(n);return this.buildSelectionRange(t,i,a)})}buildSelectionRange(e,t,i){let n=[],a=this.getWordRange(e,t,i);a&&n.push(a);let o=this.getStatementRange(e,t,i);o&&n.push(o);let l=this.getEnclosingBraceRanges(e,t,i);n.push(...l),n.push(on.Range.create(0,0,e.lineCount-1,e.getText().length));let h=this.deduplicateRanges(n),f;for(let x=h.length-1;x>=0;x--)f={range:h[x],parent:f};return f??{range:on.Range.create(0,0,0,0)}}getWordRange(e,t,i){let n=/[a-zA-Z_]\w*/g,a;for(;(a=n.exec(t))!==null;){let o=a.index,l=o+a[0].length;if(o<=i&&i<=l)return on.Range.create(e.positionAt(o),e.positionAt(l));if(o>i)break}}getStatementRange(e,t,i){let n=i,a=i;for(;n>0;){let o=t[n-1];if(o===";"||o==="{"||o==="}")break;n--}for(;a<t.length;){let o=t[a];if(o===";"){a++;break}if(o==="{")break;a++}for(;n<i&&/\s/.test(t[n]);)n++;for(;a>i&&a>n&&/\s/.test(t[a-1]);)a--;if(!(a<=n))return on.Range.create(e.positionAt(n),e.positionAt(a))}getEnclosingBraceRanges(e,t,i){let n=[],a=[],o=[];for(let l=0;l<t.length;l++)if(t[l]==="{")a.push(l);else if(t[l]==="}"){let h=a.pop();h!==void 0&&h<i&&l>=i&&o.push([h,l+1])}o.sort((l,h)=>l[1]-l[0]-(h[1]-h[0]));for(let[l,h]of o){n.push(on.Range.create(e.positionAt(l),e.positionAt(h)));let f=l;for(;f>0&&t[f-1]!==";"&&t[f-1]!=="{"&&t[f-1]!=="}";)f--;for(;f<l&&/\s/.test(t[f]);)f++;f<l&&n.push(on.Range.create(e.positionAt(f),e.positionAt(h)))}return n}deduplicateRanges(e){let t=[],i=new Set,n=e.sort((a,o)=>{let l=(a.end.line-a.start.line)*1e4+(a.end.character-a.start.character),h=(o.end.line-o.start.line)*1e4+(o.end.character-o.start.character);return l-h});for(let a of n){let o=`${a.start.line}:${a.start.character}-${a.end.line}:${a.end.character}`;i.has(o)||(i.add(o),t.push(a))}return t}};var nR=vt(mt(),1),sR=["namespace","type","class","variable","property","function","keyword","comment","string","number","operator","enum","interface"],aR=["declaration","definition","readonly","abstract"],p2=class{constructor(e){this.documentManager=e}provideSemanticTokens(e){let t=new nR.SemanticTokensBuilder,i=this.documentManager.get(e.textDocument.uri);if(!i)return t.build();i.tokenStream.fill();let n=i.tokenStream.getTokens();for(let a of n){if(!a.text||a.channel!==0)continue;let o=this.classifyToken(a);if(o===void 0)continue;let l=(a.line??1)-1,h=a.column??0,f=a.text.length;t.push(l,h,f,o,0)}return t.build()}classifyToken(e){let t=e.text;if(t){if(t.startsWith("/*")||t.startsWith("//"))return 7;if(t.startsWith('"')||t.startsWith("'"))return 8;if(/^\d/.test(t))return 9;if(/^[+\-*/<>=!&|^~%]+$/.test(t)||t==="::"||t===":>"||t===":>>")return 10;if(this.isKeyword(t))return 6;if(/^[a-zA-Z_]\w*$/.test(t))return 3}}isKeyword(e){return new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]).has(e)}};var f2=class{constructor(e,t){this.documentManager=e;this.documents=t}symbolTable=new ge;provideSignatureHelp(e){let t=e.textDocument.uri,i=this.documents.get(t);if(!i||!this.documentManager.get(t))return null;for(let v of this.documentManager.getUris()){let D=this.documentManager.get(v);D&&this.symbolTable.build(v,D)}let a=i.getText(),o=i.offsetAt(e.position),l=a.slice(a.lastIndexOf(`
117
- `,o-1)+1,o),h=l.match(/(?:perform|include|action|calc)\s+(\w+)\s*\(?\s*$|(\w+)\s*\(\s*$/);if(!h)return null;let f=h[1]??h[2];if(!f)return null;let R=this.symbolTable.findByName(f).find(v=>v.kind==="action def"||v.kind==="calc def"||v.kind==="use case def"||v.kind==="constraint def");if(!R)return null;let M=this.symbolTable.getAllSymbols().filter(v=>v.parentQualifiedName===R.qualifiedName&&(v.kind==="attribute"||v.kind==="part"||v.kind==="item"||v.kind==="port"));if(M.length===0)return null;let O=M.map(v=>({label:v.typeName?`${v.name} : ${v.typeName}`:v.name,documentation:v.documentation??`${v.kind} parameter`})),Y={label:`${f}(${O.map(v=>v.label).join(", ")})`,documentation:R.documentation??`${R.kind} ${R.name}`,parameters:O},L=(l.slice(l.lastIndexOf("(")+1).match(/,/g)??[]).length;return{signatures:[Y],activeSignature:0,activeParameter:Math.min(L,O.length-1)}}};var Yt=vt(mt(),1);var m2=class{constructor(e){this.documentManager=e}symbolTable=new ge;prepareTypeHierarchy(e){let t=e.textDocument.uri,i=this.documentManager.get(t);if(!i)return null;let n=this.documentManager.getText(t);if(!n)return null;this.buildAllSymbols(),this.symbolTable.build(t,i);let a=this.symbolTable.resolveAt(t,e.position.line,e.position.character,n);return!a||!dr(a.kind)?null:[this.toTypeHierarchyItem(a)]}provideSupertypes(e){this.buildAllSymbols();let t=e.item,n=this.symbolTable.getSymbolsForUri(t.uri).find(o=>o.name===t.name&&o.selectionRange.start.line===t.selectionRange.start.line);return!n||!n.typeName?[]:this.symbolTable.findByName(n.typeName).filter(o=>dr(o.kind)).map(o=>this.toTypeHierarchyItem(o))}provideSubtypes(e){this.buildAllSymbols();let t=e.item;return this.symbolTable.getAllSymbols().filter(a=>dr(a.kind)&&a.typeName===t.name).map(a=>this.toTypeHierarchyItem(a))}buildAllSymbols(){for(let e of this.documentManager.getUris()){let t=this.documentManager.get(e);t&&this.symbolTable.build(e,t)}}toTypeHierarchyItem(e){return{name:e.name,kind:this.toSymbolKind(e.kind),uri:e.uri,range:e.range,selectionRange:e.selectionRange,detail:e.typeName?`specializes ${e.typeName}`:e.kind}}toSymbolKind(e){switch(e){case"package":return Yt.SymbolKind.Package;case"part def":return Yt.SymbolKind.Class;case"action def":return Yt.SymbolKind.Method;case"state def":return Yt.SymbolKind.Enum;case"item def":return Yt.SymbolKind.Struct;case"port def":case"interface def":case"connection def":return Yt.SymbolKind.Interface;case"enum def":return Yt.SymbolKind.Enum;case"calc def":return Yt.SymbolKind.Function;case"requirement def":return Yt.SymbolKind.Object;case"constraint def":return Yt.SymbolKind.Constant;default:return Yt.SymbolKind.Class}}};var nt=vt(mt(),1);var x2=class{constructor(e){this.documentManager=e}symbolTable=new ge;provideWorkspaceSymbols(e){let t=e.query.toLowerCase();for(let a of this.documentManager.getUris()){let o=this.documentManager.get(a);o&&this.symbolTable.build(a,o)}let i=this.symbolTable.getAllSymbols(),n=[];for(let a of i)if(!(t&&!a.name.toLowerCase().includes(t)&&!a.qualifiedName.toLowerCase().includes(t))&&(n.push({name:a.name,kind:Z8(a.kind),location:{uri:a.uri,range:a.selectionRange},containerName:a.parentQualifiedName}),n.length>=200))break;return n}};function Z8(r){switch(r){case"package":return nt.SymbolKind.Package;case"part def":case"part":return nt.SymbolKind.Class;case"attribute def":case"attribute":return nt.SymbolKind.Property;case"port def":case"port":return nt.SymbolKind.Interface;case"action def":case"action":return nt.SymbolKind.Method;case"state def":case"state":return nt.SymbolKind.Enum;case"requirement def":case"requirement":return nt.SymbolKind.Object;case"constraint def":case"constraint":return nt.SymbolKind.Constant;case"connection def":case"connection":case"interface def":case"interface":return nt.SymbolKind.Interface;case"item def":case"item":return nt.SymbolKind.Struct;case"enum def":case"enum":return nt.SymbolKind.Enum;case"calc def":case"calc":return nt.SymbolKind.Function;case"use case def":case"use case":return nt.SymbolKind.Event;case"view def":case"view":case"viewpoint def":case"viewpoint":return nt.SymbolKind.Namespace;case"comment":case"doc":return nt.SymbolKind.String;case"import":case"alias":return nt.SymbolKind.Module;default:return nt.SymbolKind.Variable}}var X=(0,Jt.createConnection)(Jt.ProposedFeatures.all),pr=new Jt.TextDocuments(Mu),je=new $d;je.setDocuments(pr);var uR=new t2(je),n7=new o2(je),s7=new r2(je),a7=new c2(je),o7=new n2(je),l7=new p2(je),u7=new s2(je),cR=new h2(je),c7=new Xd,hR=new a2(pr),h7=new d2(pr),d7=new e2(je),p7=new x2(je),f7=new u2(je),m7=new l2(je),x7=new i2(je,pr),d4=new m2(je),p4=new Jd(je),b7=new f2(je,pr),g7=new Yd(je),$o;try{$o=e7(r7(import.meta.url))}catch{$o=__dirname}var Sr=null,R7=1,Ss=new Map;function dR(){if(Sr)return Sr;let r=t7($o,"parser","parseWorker.mjs");return Sr=new i7(r),Sr.on("message",e=>{if(e.warmup){e.interrupted?X.console.log(`[worker] DFA warm-up interrupted after ${e.chunksCompleted}/${e.totalChunks} chunks (${e.elapsed}ms) \u2014 real parse took priority`):X.console.log(`[worker] DFA warm-up complete: ${e.chunksCompleted}/${e.totalChunks} chunks in ${e.elapsed}ms`);return}let t=Ss.get(e.id);t&&(Ss.delete(e.id),t.resolve(e))}),Sr.on("error",e=>{X.console.error(`[worker] error: ${e.message}`);for(let[t,i]of Ss)Ss.delete(t),i.resolve({id:t,uri:i.uri,version:i.version,errors:[],keywordDiagnostics:[],semanticTokenData:[],timing:{lexMs:0,parseMs:0},mode:"SLL"});Sr=null}),Sr.on("exit",e=>{e!==0&&X.console.error(`[worker] exited with code ${e}`),Sr=null}),Sr}function y7(r,e,t){let i=R7++,n=dR(),a=new Promise(o=>{Ss.set(i,{uri:e,version:t,resolve:o});let l={id:i,text:r,uri:e,version:t};n.postMessage(l)});return{id:i,promise:a}}function pR(r){let e=Sr;if(!e)return;let t={id:r,cancel:!0};e.postMessage(t),Ss.delete(r)}var f4=!1,oR=!1,b2={inlayHintsEnabled:!0,libraryPath:""},g2=!1;async function fR(){if(!f4)return;let r=await X.workspace.getConfiguration("sysml"),e=r?.library?.path??"",t=e!==b2.libraryPath;if(b2={inlayHintsEnabled:r?.inlayHints?.enabled??!0,libraryPath:e},!g2||t){let i=u4($o,b2.libraryPath);X.console.log(`[library] indexed ${i} packages`),g2=!0}}X.onInitialize(r=>{let e=r.capabilities;f4=!!(e.workspace&&e.workspace.configuration),oR=!!(e.workspace&&e.workspace.workspaceFolders);let t={tokenTypes:sR,tokenModifiers:aR},i={capabilities:{textDocumentSync:Jt.TextDocumentSyncKind.Incremental,completionProvider:{resolveProvider:!0,triggerCharacters:[".",":"," "]},hoverProvider:!0,definitionProvider:!0,referencesProvider:!0,documentSymbolProvider:!0,semanticTokensProvider:{full:!0,legend:t},foldingRangeProvider:!0,renameProvider:{prepareProvider:!0},codeActionProvider:{codeActionKinds:["quickfix"]},documentFormattingProvider:!0,documentRangeFormattingProvider:!0,selectionRangeProvider:!0,codeLensProvider:{resolveProvider:!1},workspaceSymbolProvider:!0,linkedEditingRangeProvider:!0,inlayHintProvider:!0,documentLinkProvider:{resolveProvider:!1},typeHierarchyProvider:!0,callHierarchyProvider:!0,signatureHelpProvider:{triggerCharacters:["(",","]}}};return oR&&(i.capabilities.workspace={workspaceFolders:{supported:!0}}),i});X.onInitialized(()=>{f4&&X.client.register(Jt.DidChangeConfigurationNotification.type,void 0),X.console.log("SysML v2 Language Server initialized"),fR().then(()=>{if(!g2){let r=u4($o);X.console.log(`[library] indexed ${r} packages`),g2=!0}}),dR(),X.console.log("[worker] started \u2014 warming DFA in background...")});X.onDidChangeConfiguration(r=>{fR(),X.console.log("[config] settings refreshed")});var Qo=new Map,Ps=new Map,mR=new Map,C7=300;pr.onDidOpen(r=>{X.console.log(`[open] ${decodeURIComponent(r.document.uri)}`)});pr.onDidChangeContent(r=>{let e=r.document.uri,t=Qo.get(e);t&&clearTimeout(t);let i=Ps.get(e);if(i!==void 0&&(pR(i),Ps.delete(e)),r.document.version<=1)lR(r.document);else{let a=setTimeout(()=>{Qo.delete(e);let o=pr.get(e);o&&lR(o)},C7);Qo.set(e,a)}});pr.onDidClose(r=>{let e=r.document.uri;X.console.log(`[close] ${decodeURIComponent(e)}`);let t=Qo.get(e);t&&(clearTimeout(t),Qo.delete(e));let i=Ps.get(e);i!==void 0&&(pR(i),Ps.delete(e)),je.remove(e),X.sendDiagnostics({uri:e,diagnostics:[]})});async function lR(r){let e=r.uri,t=r.version,i=r.getText(),n=decodeURIComponent(e.split("/").pop()??e);X.console.log(`[validate] ${n} \u2014 ${i.length} chars, parsing...`);let a=await X.window.createWorkDoneProgress();a.begin("Parsing",void 0,`${n}\u2026`);let o=Date.now(),{id:l,promise:h}=y7(i,e,t);Ps.set(e,l);let f=await h;Ps.delete(e);let x=Date.now()-o,R=pr.get(e);if(R&&R.version!==t){a.done(),X.console.log(`[validate] ${n} \u2014 stale (v${t} \u2192 v${R.version}), discarding`);return}let S=[];for(let M of f.errors)S.push({severity:Jt.DiagnosticSeverity.Error,range:{start:{line:M.line,character:M.column},end:{line:M.line,character:M.column+M.length}},message:M.message,source:"sysml"});for(let M of f.keywordDiagnostics)S.push({severity:M.severity,range:M.range,message:M.message,source:M.source??"sysml"});X.sendDiagnostics({uri:e,diagnostics:S}),a.done(),X.console.log(`[validate] ${n} \u2014 lex ${f.timing.lexMs}ms, parse ${f.timing.parseMs}ms (${f.mode}), total ${x}ms, ${S.length} diagnostic(s)`),je.setParseTimeMs(e,f.timing.lexMs+f.timing.parseMs),mR.set(e,f.semanticTokenData),X.languages.semanticTokens.refresh()}X.onCompletion(r=>uR.provideCompletions(r));X.onCompletionResolve(r=>uR.resolveCompletion(r));X.onHover(r=>n7.provideHover(r));X.onDefinition(r=>s7.provideDefinition(r));X.onReferences(r=>a7.provideReferences(r));X.onDocumentSymbol(r=>o7.provideDocumentSymbols(r));X.languages.semanticTokens.on(r=>{let e=r.textDocument.uri;if(je.get(e))return l7.provideSemanticTokens(r);let i=mR.get(e);return i&&i.length>0?{data:i}:{data:[]}});X.onFoldingRanges(r=>u7.provideFoldingRanges(r));X.onPrepareRename(r=>cR.prepareRename(r));X.onRenameRequest(r=>cR.provideRename(r));X.onCodeAction(r=>c7.provideCodeActions(r));X.onDocumentFormatting(r=>hR.provideDocumentFormatting(r));X.onDocumentRangeFormatting(r=>hR.provideRangeFormatting(r));X.onSelectionRanges(r=>h7.provideSelectionRanges(r));X.onCodeLens(r=>d7.provideCodeLenses(r));X.onWorkspaceSymbol(r=>p7.provideWorkspaceSymbols(r));X.languages.onLinkedEditingRange(r=>f7.provideLinkedEditingRanges(r));X.languages.inlayHint.on(r=>b2.inlayHintsEnabled?m7.provideInlayHints(r):[]);X.onDocumentLinks(r=>x7.provideDocumentLinks(r));X.languages.typeHierarchy.onPrepare(r=>d4.prepareTypeHierarchy(r));X.languages.typeHierarchy.onSupertypes(r=>d4.provideSupertypes(r));X.languages.typeHierarchy.onSubtypes(r=>d4.provideSubtypes(r));X.languages.callHierarchy.onPrepare(r=>p4.prepareCallHierarchy(r));X.languages.callHierarchy.onIncomingCalls(r=>p4.provideIncomingCalls(r));X.languages.callHierarchy.onOutgoingCalls(r=>p4.provideOutgoingCalls(r));X.onSignatureHelp(r=>b7.provideSignatureHelp(r));X.onRequest("sysml/model",r=>g7.getModel(r.textDocument.uri,1,r.scope));pr.listen(X);X.listen();