unified-video-framework 1.4.64 → 1.4.65

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unified-video-framework",
3
- "version": "1.4.64",
3
+ "version": "1.4.65",
4
4
  "description": "Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more",
5
5
  "main": "packages/core/dist/index.js",
6
6
  "types": "packages/core/dist/index.d.ts",
@@ -39,6 +39,9 @@ export declare class WebPlayer extends BasePlayer {
39
39
  private selectedSubtitleKey;
40
40
  private _kiTo;
41
41
  private paywallController;
42
+ private epgData;
43
+ private epgOverlay;
44
+ private isEPGVisible;
42
45
  private _playPromise;
43
46
  private _deferredPause;
44
47
  private _lastToggleAt;
@@ -144,6 +147,12 @@ export declare class WebPlayer extends BasePlayer {
144
147
  hideEPGButton(): void;
145
148
  setEPGData(epgData: any): void;
146
149
  isEPGButtonVisible(): boolean;
150
+ private toggleEPG;
151
+ private showEPGOverlay;
152
+ private hideEPGOverlay;
153
+ private createEPGOverlay;
154
+ private populateEPGContent;
155
+ private renderChannelList;
147
156
  private cleanup;
148
157
  destroy(): Promise<void>;
149
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPlayer.d.ts","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,9 @@ export class WebPlayer extends BasePlayer {
32
32
  this.selectedSubtitleKey = 'off';
33
33
  this._kiTo = null;
34
34
  this.paywallController = null;
35
+ this.epgData = null;
36
+ this.epgOverlay = null;
37
+ this.isEPGVisible = false;
35
38
  this._playPromise = null;
36
39
  this._deferredPause = false;
37
40
  this._lastToggleAt = 0;
@@ -2591,7 +2594,7 @@ export class WebPlayer extends BasePlayer {
2591
2594
  epgBtn?.addEventListener('click', (e) => {
2592
2595
  e.stopPropagation();
2593
2596
  this.debugLog('EPG button clicked');
2594
- this.emit('epgToggle', {});
2597
+ this.toggleEPG();
2595
2598
  });
2596
2599
  const pipBtn = document.getElementById('uvf-pip-btn');
2597
2600
  pipBtn?.addEventListener('click', () => this.togglePiP());
@@ -2690,10 +2693,19 @@ export class WebPlayer extends BasePlayer {
2690
2693
  shortcutText = 'Picture-in-Picture';
2691
2694
  break;
2692
2695
  case 'g':
2693
- e.preventDefault();
2694
- this.debugLog('G key pressed - toggling EPG');
2695
- this.emit('epgToggle', {});
2696
- shortcutText = 'Toggle EPG';
2696
+ if (e.ctrlKey) {
2697
+ e.preventDefault();
2698
+ this.debugLog('Ctrl+G pressed - toggling EPG');
2699
+ this.toggleEPG();
2700
+ shortcutText = 'Toggle EPG';
2701
+ }
2702
+ break;
2703
+ case 'Escape':
2704
+ if (this.isEPGVisible) {
2705
+ e.preventDefault();
2706
+ this.hideEPGOverlay();
2707
+ shortcutText = 'Close EPG';
2708
+ }
2697
2709
  break;
2698
2710
  case '0':
2699
2711
  case '1':
@@ -4066,6 +4078,7 @@ export class WebPlayer extends BasePlayer {
4066
4078
  }
4067
4079
  }
4068
4080
  setEPGData(epgData) {
4081
+ this.epgData = epgData;
4069
4082
  if (epgData && Object.keys(epgData).length > 0) {
4070
4083
  this.showEPGButton();
4071
4084
  this.debugLog('EPG data set, button shown');
@@ -4080,6 +4093,248 @@ export class WebPlayer extends BasePlayer {
4080
4093
  const epgBtn = document.getElementById('uvf-epg-btn');
4081
4094
  return epgBtn ? epgBtn.style.display !== 'none' : false;
4082
4095
  }
4096
+ toggleEPG() {
4097
+ if (this.isEPGVisible) {
4098
+ this.hideEPGOverlay();
4099
+ }
4100
+ else {
4101
+ this.showEPGOverlay();
4102
+ }
4103
+ }
4104
+ showEPGOverlay() {
4105
+ if (!this.epgData) {
4106
+ this.showNotification('No EPG data available');
4107
+ return;
4108
+ }
4109
+ if (!this.epgOverlay) {
4110
+ this.createEPGOverlay();
4111
+ }
4112
+ if (this.epgOverlay) {
4113
+ this.epgOverlay.style.display = 'flex';
4114
+ this.isEPGVisible = true;
4115
+ this.debugLog('EPG overlay shown');
4116
+ this.emit('epgToggle', { visible: true, data: this.epgData });
4117
+ }
4118
+ }
4119
+ hideEPGOverlay() {
4120
+ if (this.epgOverlay) {
4121
+ this.epgOverlay.style.display = 'none';
4122
+ this.isEPGVisible = false;
4123
+ this.debugLog('EPG overlay hidden');
4124
+ this.emit('epgToggle', { visible: false, data: this.epgData });
4125
+ }
4126
+ }
4127
+ createEPGOverlay() {
4128
+ if (!this.playerWrapper)
4129
+ return;
4130
+ this.epgOverlay = document.createElement('div');
4131
+ this.epgOverlay.className = 'uvf-epg-overlay';
4132
+ this.epgOverlay.style.cssText = `
4133
+ position: absolute;
4134
+ top: 0;
4135
+ left: 0;
4136
+ right: 0;
4137
+ bottom: 0;
4138
+ background: rgba(0, 0, 0, 0.95);
4139
+ color: white;
4140
+ z-index: 1000;
4141
+ display: none;
4142
+ flex-direction: column;
4143
+ padding: 20px;
4144
+ box-sizing: border-box;
4145
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4146
+ `;
4147
+ const header = document.createElement('div');
4148
+ header.style.cssText = `
4149
+ display: flex;
4150
+ justify-content: space-between;
4151
+ align-items: center;
4152
+ margin-bottom: 20px;
4153
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
4154
+ padding-bottom: 15px;
4155
+ `;
4156
+ const title = document.createElement('h2');
4157
+ title.textContent = 'Electronic Program Guide';
4158
+ title.style.cssText = `
4159
+ margin: 0;
4160
+ color: #ff6b35;
4161
+ font-size: 24px;
4162
+ font-weight: 600;
4163
+ `;
4164
+ const closeBtn = document.createElement('button');
4165
+ closeBtn.innerHTML = '×';
4166
+ closeBtn.style.cssText = `
4167
+ background: none;
4168
+ border: none;
4169
+ color: white;
4170
+ font-size: 32px;
4171
+ cursor: pointer;
4172
+ padding: 0;
4173
+ width: 40px;
4174
+ height: 40px;
4175
+ display: flex;
4176
+ align-items: center;
4177
+ justify-content: center;
4178
+ border-radius: 50%;
4179
+ transition: background-color 0.2s;
4180
+ `;
4181
+ closeBtn.addEventListener('click', () => this.hideEPGOverlay());
4182
+ closeBtn.addEventListener('mouseenter', () => {
4183
+ closeBtn.style.backgroundColor = 'rgba(255, 255, 255, 0.1)';
4184
+ });
4185
+ closeBtn.addEventListener('mouseleave', () => {
4186
+ closeBtn.style.backgroundColor = 'transparent';
4187
+ });
4188
+ header.appendChild(title);
4189
+ header.appendChild(closeBtn);
4190
+ const content = document.createElement('div');
4191
+ content.className = 'uvf-epg-content';
4192
+ content.style.cssText = `
4193
+ flex: 1;
4194
+ overflow-y: auto;
4195
+ padding-right: 10px;
4196
+ `;
4197
+ this.populateEPGContent(content);
4198
+ const footer = document.createElement('div');
4199
+ footer.style.cssText = `
4200
+ margin-top: 20px;
4201
+ padding-top: 15px;
4202
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
4203
+ text-align: center;
4204
+ color: rgba(255, 255, 255, 0.7);
4205
+ font-size: 14px;
4206
+ `;
4207
+ footer.innerHTML = 'Press <strong>Esc</strong> or <strong>Ctrl+G</strong> to close • Click outside to close';
4208
+ this.epgOverlay.appendChild(header);
4209
+ this.epgOverlay.appendChild(content);
4210
+ this.epgOverlay.appendChild(footer);
4211
+ this.playerWrapper.appendChild(this.epgOverlay);
4212
+ this.epgOverlay.addEventListener('keydown', (e) => {
4213
+ if (e.key === 'Escape') {
4214
+ this.hideEPGOverlay();
4215
+ }
4216
+ });
4217
+ this.epgOverlay.addEventListener('click', (e) => {
4218
+ if (e.target === this.epgOverlay) {
4219
+ this.hideEPGOverlay();
4220
+ }
4221
+ });
4222
+ this.debugLog('EPG overlay created');
4223
+ }
4224
+ populateEPGContent(container) {
4225
+ if (!this.epgData)
4226
+ return;
4227
+ container.innerHTML = '';
4228
+ if (Array.isArray(this.epgData)) {
4229
+ this.renderChannelList(container, this.epgData);
4230
+ }
4231
+ else if (this.epgData.channels) {
4232
+ this.renderChannelList(container, this.epgData.channels);
4233
+ }
4234
+ else {
4235
+ container.innerHTML = `
4236
+ <div style="font-family: monospace; font-size: 12px; color: rgba(255, 255, 255, 0.8);">
4237
+ <pre>${JSON.stringify(this.epgData, null, 2)}</pre>
4238
+ </div>
4239
+ `;
4240
+ }
4241
+ }
4242
+ renderChannelList(container, channels) {
4243
+ if (!Array.isArray(channels) || channels.length === 0) {
4244
+ container.innerHTML = '<div style="text-align: center; color: rgba(255, 255, 255, 0.7);">No channels available</div>';
4245
+ return;
4246
+ }
4247
+ channels.forEach((channel, index) => {
4248
+ const channelDiv = document.createElement('div');
4249
+ channelDiv.style.cssText = `
4250
+ margin-bottom: 20px;
4251
+ padding: 15px;
4252
+ background: rgba(255, 255, 255, 0.05);
4253
+ border-radius: 8px;
4254
+ border-left: 3px solid #ff6b35;
4255
+ `;
4256
+ const channelHeader = document.createElement('div');
4257
+ channelHeader.style.cssText = `
4258
+ display: flex;
4259
+ align-items: center;
4260
+ margin-bottom: 10px;
4261
+ `;
4262
+ const channelName = document.createElement('h3');
4263
+ channelName.textContent = channel.name || channel.title || `Channel ${index + 1}`;
4264
+ channelName.style.cssText = `
4265
+ margin: 0;
4266
+ color: #ff6b35;
4267
+ font-size: 18px;
4268
+ font-weight: 600;
4269
+ `;
4270
+ const channelNumber = document.createElement('span');
4271
+ if (channel.number || channel.id) {
4272
+ channelNumber.textContent = `Ch ${channel.number || channel.id}`;
4273
+ channelNumber.style.cssText = `
4274
+ margin-left: 10px;
4275
+ padding: 2px 8px;
4276
+ background: rgba(255, 107, 53, 0.2);
4277
+ border-radius: 12px;
4278
+ font-size: 12px;
4279
+ color: rgba(255, 255, 255, 0.8);
4280
+ `;
4281
+ }
4282
+ channelHeader.appendChild(channelName);
4283
+ if (channelNumber.textContent) {
4284
+ channelHeader.appendChild(channelNumber);
4285
+ }
4286
+ const programsList = document.createElement('div');
4287
+ programsList.style.cssText = `
4288
+ margin-left: 10px;
4289
+ `;
4290
+ if (channel.programs && Array.isArray(channel.programs)) {
4291
+ channel.programs.slice(0, 5).forEach((program) => {
4292
+ const programDiv = document.createElement('div');
4293
+ programDiv.style.cssText = `
4294
+ display: flex;
4295
+ justify-content: space-between;
4296
+ align-items: center;
4297
+ padding: 5px 0;
4298
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
4299
+ `;
4300
+ const programInfo = document.createElement('div');
4301
+ programInfo.style.flex = '1';
4302
+ const programTitle = document.createElement('div');
4303
+ programTitle.textContent = program.title || program.name || 'Untitled Program';
4304
+ programTitle.style.cssText = `
4305
+ color: white;
4306
+ font-weight: 500;
4307
+ margin-bottom: 2px;
4308
+ `;
4309
+ const programTime = document.createElement('div');
4310
+ const startTime = program.startTime ? new Date(program.startTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4311
+ const endTime = program.endTime ? new Date(program.endTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4312
+ programTime.textContent = startTime && endTime ? `${startTime} - ${endTime}` : 'Time TBA';
4313
+ programTime.style.cssText = `
4314
+ color: rgba(255, 255, 255, 0.6);
4315
+ font-size: 12px;
4316
+ `;
4317
+ programInfo.appendChild(programTitle);
4318
+ programInfo.appendChild(programTime);
4319
+ programDiv.appendChild(programInfo);
4320
+ programsList.appendChild(programDiv);
4321
+ });
4322
+ }
4323
+ else {
4324
+ const noPrograms = document.createElement('div');
4325
+ noPrograms.textContent = 'No programs available';
4326
+ noPrograms.style.cssText = `
4327
+ color: rgba(255, 255, 255, 0.6);
4328
+ font-style: italic;
4329
+ padding: 10px 0;
4330
+ `;
4331
+ programsList.appendChild(noPrograms);
4332
+ }
4333
+ channelDiv.appendChild(channelHeader);
4334
+ channelDiv.appendChild(programsList);
4335
+ container.appendChild(channelDiv);
4336
+ });
4337
+ }
4083
4338
  async cleanup() {
4084
4339
  if (this.hls) {
4085
4340
  this.hls.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlayer.js","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAoBjD,MAAM,OAAO,SAAU,SAAQ,UAAU;IAAzC;;QACY,UAAK,GAA4B,IAAI,CAAC;QACxC,QAAG,GAAQ,IAAI,CAAC;QAChB,SAAI,GAAQ,IAAI,CAAC;QACjB,cAAS,GAAc,EAAE,CAAC;QAC1B,wBAAmB,GAAW,CAAC,CAAC,CAAC;QACjC,gBAAW,GAAY,IAAI,CAAC;QAC5B,sBAAiB,GAAY,IAAI,CAAC;QAClC,sBAAiB,GAAuB,IAAI,CAAC;QAC7C,wBAAmB,GAAQ,IAAI,CAAC;QAChC,sBAAiB,GAAQ,IAAI,CAAC;QAC9B,oBAAe,GAAY,KAAK,CAAC;QACjC,eAAU,GAAY,KAAK,CAAC;QAC5B,oBAAe,GAA6B,IAAI,CAAC;QACjD,kBAAa,GAAuB,IAAI,CAAC;QAEzC,mBAAc,GAAY,KAAK,CAAC;QAChC,uBAAkB,GAAW,CAAC,CAAC;QAC/B,sBAAiB,GAAY,KAAK,CAAC;QAGnC,oBAAe,GAAY,KAAK,CAAC;QACjC,2BAAsB,GAAQ,IAAI,CAAC;QACnC,2BAAsB,GAAW,CAAC,CAAC;QACnC,8BAAyB,GAAW,CAAC,CAAC;QACtC,sBAAiB,GAAW,CAAC,CAAC;QAG9B,gBAAW,GAAQ,IAAI,CAAC;QACxB,iBAAY,GAAQ,IAAI,CAAC;QACzB,qBAAgB,GAAQ,IAAI,CAAC;QAC7B,cAAS,GAAY,KAAK,CAAC;QAC3B,sBAAiB,GAA2B,EAAE,CAAC;QAC/C,wBAAmB,GAAW,KAAK,CAAC;QACpC,UAAK,GAAQ,IAAI,CAAC;QAGlB,sBAAiB,GAAQ,IAAI,CAAC;QAG9B,iBAAY,GAAyB,IAAI,CAAC;QAC1C,mBAAc,GAAG,KAAK,CAAC;QACvB,kBAAa,GAAG,CAAC,CAAC;QAClB,wBAAmB,GAAG,GAAG,CAAC;IA01IpC,CAAC;IAv1IS,QAAQ,CAAC,OAAe,EAAE,GAAG,IAAW;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;SAChD;IACH,CAAC;IAEO,UAAU,CAAC,OAAe,EAAE,GAAG,IAAW;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,OAAO,CAAC,KAAK,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;SAClD;IACH,CAAC;IAEO,SAAS,CAAC,OAAe,EAAE,GAAG,IAAW;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;SACjD;IACH,CAAC;IAGS,KAAK,CAAC,WAAW;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAGD,IAAI,CAAC,YAAY,EAAE,CAAC;QAGpB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,oBAAoB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAG7B,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrD,cAAc,CAAC,SAAS,GAAG,qBAAqB,CAAC;QAGjD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;SAClD;QAGD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,qBAAqB,CAAC;QAGvD,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAGjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;SAC3C;QAGD,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAGpC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAGpC,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAG5C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAGhC,IAAI;YACF,MAAM,EAAE,GAAS,IAAI,CAAC,MAAc,CAAC,OAAO,IAAI,IAAI,CAAC;YACrD,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;gBACpB,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;gBAC1E,IAAI,CAAC,iBAAiB,GAAG,IAAK,iBAAyB,CAAC,EAAE,EAAE;oBAC1D,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;oBAC7C,QAAQ,EAAE,GAAG,EAAE;wBACb,IAAI;4BACF,IAAI,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;4BAGvE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;4BAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACrC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;4BAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;4BAC7B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;4BAGhC,IAAI,IAAI,CAAC,sBAAsB,EAAE;gCAC/B,IAAI,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;gCACvD,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gCAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;6BACpC;4BAGD,IAAI,CAAC,oBAAoB,EAAE,CAAC;4BAE5B,IAAI,CAAC,QAAQ,CAAC,0EAA0E,CAAC,CAAC;4BAG1F,UAAU,CAAC,GAAG,EAAE;gCACd,IAAI,CAAC,IAAI,EAAE,CAAC;4BACd,CAAC,EAAE,GAAG,CAAC,CAAC;yBACT;wBAAC,OAAM,KAAK,EAAE;4BACb,IAAI,CAAC,UAAU,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;yBACvD;oBACH,CAAC;oBACD,MAAM,EAAE,GAAG,EAAE;wBAEX,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;wBAG9B,IAAI;4BAAE,IAAI,CAAC,YAAY,EAAE,CAAC;yBAAE;wBAAC,OAAM,CAAC,EAAE,GAAE;oBAC1C,CAAC;oBACD,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;wBAG9D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;wBAG7B,IAAI,IAAI,CAAC,sBAAsB,EAAE;4BAC/B,IAAI,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;4BAChE,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;4BAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;yBACpC;wBAGD,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;oBAClC,CAAC;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,oBAA2B,EAAE,GAAG,EAAE;oBACxC,IAAI,CAAC,QAAQ,CAAC,6EAA6E,CAAC,CAAC;oBAC7F,IAAI;wBACF,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;qBACvC;oBAAC,OAAM,KAAK,EAAE;wBACb,IAAI,CAAC,UAAU,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;qBAC1E;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;QAGd,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAG5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAEvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;gBACvF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,GAAG,IAAI,GAAG,EAAE;oBACtC,IAAI;wBAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;qBAAE;oBAAC,OAAO,CAAC,EAAE,GAAE;oBACzC,IAAI,CAAC,gBAAgB,CAAC,8CAA8C,CAAC,CAAC;oBACtE,OAAO;iBACR;aACF;YACD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAE1C,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI;oBAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE,GAAE;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAEnB,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAGrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAGzB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI;oBAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE,GAAE;aAC1C;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAGlE,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC;gBAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC;gBACjC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;aACpC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,WAAW,CAAC;oBACf,IAAI,EAAE,aAAa,KAAK,CAAC,IAAI,EAAE;oBAC/B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC/D,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YAEzC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,sBAAsB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,IAAY;QACvC,QAAQ,IAAI,EAAE;YACZ,KAAK,CAAC,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC;YAC/B,KAAK,CAAC,CAAC,CAAC,OAAO,uBAAuB,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,OAAO,4BAA4B,CAAC;YAC5C,OAAO,CAAC,CAAC,OAAO,qBAAqB,CAAC;SACvC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrC,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;SACjC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAW;QACpB,IAAI,CAAC,MAAM,GAAG,MAAa,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAQ,CAAC;QAGjD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAID,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEjD,IAAI;YACF,QAAQ,UAAU,EAAE;gBAClB,KAAK,KAAK;oBACR,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,MAAM;oBACT,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAChC,MAAM;gBACR;oBACE,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACrC;YAGD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aACtC;YAGD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE;oBAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;iBAC/C;gBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;iBAAM;gBAEL,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;SAEF;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,yBAAyB,KAAK,EAAE;gBACzC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAEO,gBAAgB,CAAC,MAAmB;QAC1C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YACzC,OAAO,MAAM,CAAC,IAAI,CAAC;SACpB;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW;QAE/B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,MAAM,IAAI,CAAC,UAAU,CAAC,4CAA4C,CAAC,CAAC;SACrE;QAED,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,KAAK;gBACrB,gBAAgB,EAAE,EAAE;aACrB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,KAAU,EAAE,IAAS,EAAE,EAAE;gBAEvE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;oBAC/D,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC;oBACvB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG;oBACzB,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC,CAAC;gBAGJ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;oBACxB,IAAI,CAAC,IAAI,EAAE,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,KAAU,EAAE,IAAS,EAAE,EAAE;gBACtE,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC;oBACtC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAQ,CAAC;oBAC9D,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC3D;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAU,EAAE,IAAS,EAAE,EAAE;gBAC7D,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;iBAC3B;YACH,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,IAAI,CAAC,KAAM,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE;YAEnE,IAAI,CAAC,KAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SACvB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACzD;IACH,CAAC;IAEO,cAAc,CAAC,IAAS;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,GAAG,CAAC,UAAU,CAAC,aAAa;gBAC/B,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW;gBAC7B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC7B,MAAM;YACR;gBACE,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,IAAI,CAAC,WAAW,CAAC;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM;SACT;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAW;QAEhC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,IAAI,CAAC,UAAU,CAAC,+CAA+C,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAG5D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACvB,SAAS,EAAE;gBACT,GAAG,EAAE;oBACH,iBAAiB,EAAE;wBACjB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,IAAI;wBAChD,KAAK,EAAE,IAAI;qBACZ;iBACF;gBACD,MAAM,EAAE;oBACN,iBAAiB,EAAE,IAAI;iBACxB;aACF;SACF,CAAC,CAAC;QAGH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC,CAAM,EAAE,EAAE;YAChF,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,EAAE;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACtC;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,kBAAkB,EAAE,GAAG,EAAE;YACrE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzC,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;oBAC9D,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;oBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;oBACtB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG;oBACxB,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC,CAAC;aACL;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAM,EAAE,EAAE;YAC9D,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,YAAoB;QAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;YAChC,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAQ,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;SAC7D;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAW;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAES,UAAU,CAAC,GAAW;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,SAA0B;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAGxB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAGhD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC;YAC1C,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC7B,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC;YAE/B,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,EAAE;gBACnC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,CAAC,KAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAC,GAAQ;QAC/B,OAAO,CAAC,CAAC,GAAG,IAAI,CACd,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;YAC3B,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAGlE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;YACrD,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO;SACR;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAChE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAGzB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAEpD,IAAI;YACF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,YAAY,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAGzB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACpB;YAED,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;SACpB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE;gBAE9B,OAAO;aACR;YACD,IAAI,CAAC,WAAW,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,6BAA6B,GAAG,EAAE;gBAC3C,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,GAAG;aACb,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAChE,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;QAGzB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB,CAAC,iBAAiB,EAAE;YACnF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAGM,YAAY;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,gBAAgB,CAAC,iBAAiB,EAAE;YACnG,IAAI;gBAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE,GAAE;SACzC;IACH,CAAC;IAED,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAGxB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;YAC/E,IAAI,aAAa,IAAI,YAAY,EAAE;gBACjC,IAAI,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAE9B,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;gBACvD,OAAO;aACR;SACF;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,IAAY;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC/B,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;YAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;SAC/B;QACD,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC;IAChC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAgB,CAAC;IAC/B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAClG,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;SAC/B;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACzC;QAED,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,OAAgB;QAC7B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;SACjE;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;gBACvB,SAAS,EAAE;oBACT,GAAG,EAAE;wBACH,iBAAiB,EAAE;4BACjB,KAAK,EAAE,OAAO;yBACf;qBACF;iBACF;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,IAAI;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;YAEnC,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBAC7B,MAAM,OAAO,CAAC,iBAAiB,EAAE,CAAC;aACnC;iBAAM,IAAK,OAAe,CAAC,uBAAuB,EAAE;gBACnD,MAAO,OAAe,CAAC,uBAAuB,EAAE,CAAC;aAClD;iBAAM,IAAK,OAAe,CAAC,oBAAoB,EAAE;gBAChD,MAAO,OAAe,CAAC,oBAAoB,EAAE,CAAC;aAC/C;iBAAM,IAAK,OAAe,CAAC,mBAAmB,EAAE;gBAC/C,MAAO,OAAe,CAAC,mBAAmB,EAAE,CAAC;aAC9C;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aACjD;YAGD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACxC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI;YACF,IAAI,QAAQ,CAAC,cAAc,EAAE;gBAC3B,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;aACjC;iBAAM,IAAK,QAAgB,CAAC,oBAAoB,EAAE;gBACjD,MAAO,QAAgB,CAAC,oBAAoB,EAAE,CAAC;aAChD;iBAAM,IAAK,QAAgB,CAAC,mBAAmB,EAAE;gBAChD,MAAO,QAAgB,CAAC,mBAAmB,EAAE,CAAC;aAC/C;iBAAM,IAAK,QAAgB,CAAC,gBAAgB,EAAE;gBAC7C,MAAO,QAAgB,CAAC,gBAAgB,EAAE,CAAC;aAC5C;YAGD,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aACvD;YACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,IAAI;YACF,IAAK,IAAI,CAAC,KAAa,CAAC,uBAAuB,EAAE;gBAC/C,MAAO,IAAI,CAAC,KAAa,CAAC,uBAAuB,EAAE,CAAC;aACrD;iBAAM;gBACL,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACrD;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,IAAI;YACF,IAAK,QAAgB,CAAC,oBAAoB,EAAE;gBAC1C,MAAO,QAAgB,CAAC,oBAAoB,EAAE,CAAC;aAChD;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC5C,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAES,kBAAkB,CAAC,KAAU;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;gBACnC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;aAC5B;iBAAM;gBACL,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;aAC3B;SACF;IACH,CAAC;IAES,eAAe;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC;SAC3B;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC;YAAE,OAAO;QAEzD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,EAAE,GAAG,mBAAmB,CAAC;QAC/B,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEO,eAAe;QACrB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+5CN,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,SAAsB;QAEjD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC3C,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,gBAAgB,CAAC,SAAS,GAAG,uBAAuB,CAAC;QACrD,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAGxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,GAAG,eAAe,CAAC;QACrC,QAAQ,CAAC,SAAS,GAAG;;;;;;;;KAQpB,CAAC;QACF,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAGhC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC3C,WAAW,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;KAiBvB,CAAC;QACF,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAGnC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,gBAAgB,CAAC,SAAS,GAAG,uBAAuB,CAAC;QACrD,gBAAgB,CAAC,EAAE,GAAG,aAAa,CAAC;QACpC,gBAAgB,CAAC,SAAS,GAAG,yCAAyC,CAAC;QACvE,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAGxC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,GAAG,qBAAqB,CAAC;QAChD,aAAa,CAAC,EAAE,GAAG,iBAAiB,CAAC;QACrC,aAAa,CAAC,SAAS,GAAG,0DAA0D,CAAC;QACrF,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAGrC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,iBAAiB,CAAC,SAAS,GAAG,wBAAwB,CAAC;QACvD,iBAAiB,CAAC,EAAE,GAAG,wBAAwB,CAAC;QAChD,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAGzC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC3C,WAAW,CAAC,EAAE,GAAG,cAAc,CAAC;QAGhC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,SAAS,GAAG,sBAAsB,CAAC;QAEnD,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,0BAA0B,CAAC;QACnD,WAAW,CAAC,EAAE,GAAG,kBAAkB,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG;;;;;KAKvB,CAAC;QACF,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAGzC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAG3C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtD,YAAY,CAAC,SAAS,GAAG,4BAA4B,CAAC;QACtD,YAAY,CAAC,EAAE,GAAG,gBAAgB,CAAC;QACnC,YAAY,CAAC,SAAS,GAAG;;;;;;;KAOxB,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAGtC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAC1C,WAAW,CAAC,EAAE,GAAG,eAAe,CAAC;QACjC,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QACvD,WAAW,CAAC,YAAY,CAAC,YAAY,EAAE,0BAA0B,CAAC,CAAC;QACnE,WAAW,CAAC,SAAS,GAAG,wFAAwF,CAAC;QACjH,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAErC,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxD,cAAc,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAC7C,cAAc,CAAC,EAAE,GAAG,kBAAkB,CAAC;QACvC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACzD,cAAc,CAAC,YAAY,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACrE,cAAc,CAAC,SAAS,GAAG,wFAAwF,CAAC;QACpH,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAGxC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAC/C,aAAa,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;KAezB,CAAC;QACF,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAGvC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClD,WAAW,CAAC,SAAS,GAAG,kBAAkB,CAAC;QAC3C,WAAW,CAAC,EAAE,GAAG,kBAAkB,CAAC;QACpC,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC;QAC1C,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAGrC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpD,aAAa,CAAC,SAAS,GAAG,oBAAoB,CAAC;QAG/C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC7C,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC;QACtC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;QAChC,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAGxC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACxD,iBAAiB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAE9C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,WAAW,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAC1C,WAAW,CAAC,EAAE,GAAG,kBAAkB,CAAC;QACpC,WAAW,CAAC,SAAS,GAAG,u4BAAu4B,CAAC;QACh6B,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAG3C,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,SAAS,GAAG,mBAAmB,CAAC;QAC7C,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC;QACtC,YAAY,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;KAiBxB,CAAC;QACF,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5C,aAAa,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QAG7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACrC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,mCAAmC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG;;;;;WAKZ,CAAC;QACR,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC9B,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAGlC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;QACrC,MAAM,CAAC,EAAE,GAAG,aAAa,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,oBAAoB,CAAC;QACpC,MAAM,CAAC,SAAS,GAAG,uJAAuJ,CAAC;QAC3K,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAGlC,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvD,aAAa,CAAC,SAAS,GAAG,iBAAiB,CAAC;QAC5C,aAAa,CAAC,EAAE,GAAG,oBAAoB,CAAC;QACxC,aAAa,CAAC,SAAS,GAAG,2HAA2H,CAAC;QACtJ,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEzC,WAAW,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAGvC,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACzC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAEnC,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;IACvC,CAAC;IAEO,2BAA2B;QACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAgB,CAAC;QACpF,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAGhE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;YAC/C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;YAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAGH,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACpE,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAGnE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC9C,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YACjD,IAAI,UAAU;gBAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAGnD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;oBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBAC7B;YACH,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC/C,IAAI,SAAS;gBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAChD,IAAI,UAAU;gBAAE,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAGH,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QACtF,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;QAGzF,SAAS,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACzC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAGH,SAAS,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC7C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,SAAS,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACvC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;oBACnC,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBACzC;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC/C,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACrC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;gBACzB,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACnE,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBACxC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;QACH,CAAC,CAAC,CAAC;QAGH,YAAY,EAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAChD,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,kBAAkB,CAAC,CAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,YAAY,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,CAAC,CAAe,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE;gBAClC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;aAC9B;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YACxC,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,UAAU,CAAC,GAAG,EAAE;oBACd,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;wBACpE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;qBACzC;gBACH,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC,CAAC,CAAC;QAGH,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAe,CAAC,CAAC,CAAC;QAC1F,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QAGzE,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC7C,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;YACrF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;YACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAEhE,IAAI,IAAI,CAAC,KAAK,IAAI,cAAc,IAAI,cAAc,EAAE;gBAClD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBACrE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;gBAC3C,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;aAC3C;YAGD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAgB,CAAC;YACzF,IAAI,IAAI,CAAC,KAAK,IAAI,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBAC1E,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,GAAG,GAAG,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;YAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YAE1D,IAAI,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,WAAW,EAAE;gBAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBACpD,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;gBACvC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;aAC3C;YAED,IAAI,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,QAAQ,EAAE;gBACxC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/C,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;oBAClC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;iBAClC;qBAAM;oBACL,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;oBACnC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;iBACjC;aACF;QACH,CAAC,CAAC,CAAC;QAGH,aAAa,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACvB,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;iBAAM;gBACL,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QAGH,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,aAAa,EAAE;gBACjB,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;oBAC3C,CAAC,CAAC,0HAA0H;oBAC5H,CAAC,CAAC,2HAA2H,CAAC;aACjI;QACH,CAAC,CAAC;QAGF,IAAI,CAAC,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;QAGrD,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACvD,IAAI,OAAO;gBAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YACvD,IAAI,OAAO;gBAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAIH,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1D,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1D,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QAGH,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAe,CAAC,CAAC,CAAC;QAC3F,WAAW,EAAE,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAG1E,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAClE,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAGH,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACrC,MAAM,KAAK,GAAG,UAAU,CAAE,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;gBACzE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACrB,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAI,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC1D,IAAI,CAAC,iBAAiB,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;gBAC1C,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAGH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAEpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAGH,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAG1D,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAE1D,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACnE,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACjE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAG7D,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACvC,IAAI,CAAE,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,mBAAmB,CAAC;gBACvD,CAAE,CAAC,CAAC,MAAsB,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;gBAC5D,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,sBAAsB;QAE9B,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YAEzC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;YACvC,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,UAAU,IAAI,MAAM,CAAC,iBAAiB,EAAE;gBAC3F,OAAO;aACR;YAGD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnE,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,QAAO,CAAC,CAAC,GAAG,EAAE;gBACZ,KAAK,GAAG,CAAC;gBACT,KAAK,UAAU,CAAC;gBAChB,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE;wBAC/C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;wBAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM;wBAC/B,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;qBAC1B,CAAC,CAAC;oBAGH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC;oBAC7C,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAEnE,IAAI,CAAC,eAAe,EAAE,CAAC;oBAGvB,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC3C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,WAAW;oBACd,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;oBACrD,YAAY,GAAG,MAAM,CAAC;oBACtB,MAAM;gBACR,KAAK,YAAY;oBACf,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAM,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;oBACxE,YAAY,GAAG,MAAM,CAAC;oBACtB,MAAM;gBACR,KAAK,SAAS;oBACZ,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;wBACvC,YAAY,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;qBACtF;yBAAM;wBACL,YAAY,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;qBACzE;oBACD,MAAM;gBACR,KAAK,WAAW;oBACd,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC;oBACxB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;wBACvC,YAAY,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;qBACtF;yBAAM;wBACL,YAAY,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;qBACzE;oBACD,MAAM;gBACR,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACxB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE;wBACvC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;qBAChE;yBAAM;wBACL,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;qBACxD;oBACD,MAAM;gBACR,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;wBAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;wBACvB,YAAY,GAAG,YAAY,CAAC;qBAC7B;yBAAM;wBACL,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtB,YAAY,GAAG,iBAAiB,CAAC;qBAClC;oBACD,MAAM;gBACR,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjB,YAAY,GAAG,oBAAoB,CAAC;oBACpC,MAAM;gBACR,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;oBAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;oBAC3B,YAAY,GAAG,YAAY,CAAC;oBAC5B,MAAM;gBACR,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG;oBACN,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;oBACrC,IAAI,IAAI,CAAC,KAAK,EAAE;wBACd,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC;wBAC/D,YAAY,GAAG,GAAG,OAAO,GAAG,CAAC;qBAC9B;oBACD,MAAM;aACT;YAED,IAAI,YAAY,EAAE;gBAChB,IAAI,CAAC,QAAQ,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;gBAC3D,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC;QAGF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAGvE,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAClD;QAGD,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;SACvD;IACH,CAAC;IAES,cAAc;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,eAAe,GAAG,GAAG,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAgB,CAAC,aAAa,CAAC;YACtD,IAAI,CAAC,SAAS;gBAAE,OAAO;YAEvB,IAAI,CAAC,eAAgB,CAAC,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC;YACpD,IAAI,CAAC,eAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC;YAEtD,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAgB,CAAC,MAAM,CAAC,CAAC;YAG/E,MAAM,OAAO,GAAG,IAAI,CAAC,aAAmC,CAAC;YACzD,IAAI,EAAE,GAAG,SAAS,CAAC;YACnB,IAAI,EAAE,GAAG,SAAS,CAAC;YACnB,IAAI;gBACF,IAAI,OAAO,EAAE;oBACX,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBACzC,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5D,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5D,IAAI,EAAE;wBAAE,EAAE,GAAG,EAAE,CAAC;oBAChB,IAAI,EAAE;wBAAE,EAAE,GAAG,EAAE,CAAC;iBACjB;aACF;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACxD,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;YACtB,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;YACxB,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC;YAEvB,MAAM,IAAI,GAAG,aAAa,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,eAAgB,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;YACnE,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,eAAgB,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAEnE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC;QAEF,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACnC,eAAe,EAAE,CAAC;IACpB,CAAC;IAEM,gBAAgB,CAAC,MAAW;QACjC,IAAI;YACF,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,KAAK,UAAU,EAAE;gBACvF,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aAC7C;iBAAM;gBAEL,IAAI,MAAM,CAAC,OAAO,EAAE;oBAClB,MAAM,CAAC,6BAA6B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE;wBACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,EAAE;4BACvD,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa;4BAC7C,QAAQ,EAAE,CAAC,UAAgB,EAAE,EAAE;gCAC7B,IAAI;oCAEF,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;oCAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oCAGrC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE;wCAC5E,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wCAC9B,IAAI,CAAC,QAAQ,CAAC,sFAAsF,CAAC,CAAC;qCACvG;yCAAM;wCACL,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;wCAC9B,IAAI,CAAC,QAAQ,CAAC,kGAAkG,CAAC,CAAC;qCACnH;oCAED,IAAI,CAAC,IAAI,EAAE,CAAC;iCACb;gCAAC,OAAM,CAAC,EAAE,GAAE;4BACf,CAAC;4BACD,MAAM,EAAE,GAAG,EAAE;gCAEX,IAAI;oCAAE,IAAI,CAAC,YAAY,EAAE,CAAC;iCAAE;gCAAC,OAAM,CAAC,EAAE,GAAE;4BAC1C,CAAC;4BACD,OAAO,EAAE,GAAG,EAAE;4BAEd,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;iBACpB;aACF;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,sCAAsC,EAAE;YACpD,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;YACzB,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM;YAC/B,WAAW,EAAE,IAAI,CAAC,KAAK;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAC;YACzD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;IACH,CAAC;IAGO,sBAAsB,CAAC,OAAe,EAAE,WAAoB,KAAK;QACvE,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAAE,OAAO;YACvB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAG7C,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,6FAA6F,CAAC,CAAC;gBAC7G,OAAO;aACR;YAGD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;YAC9D,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,gBAAgB,GAAG,IAAI,EAAE;gBAC1D,IAAI,CAAC,QAAQ,CAAC,iDAAiD,EAAE,gBAAgB,GAAG,QAAQ,CAAC,CAAC;gBAC9F,OAAO;aACR;YAED,IAAI,OAAO,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACjD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC3B,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBAGhC,IAAI,CAAC,QAAQ,CAAC,kDAAkD,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC5F,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC;oBAClE,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;iBACtC;qBAAM;oBACL,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;iBACjD;aACF;YACD,IAAI,OAAO,IAAI,GAAG,GAAG,IAAI,EAAE;gBACzB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;oBAC3C,IAAI;wBACF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,KAAK,EAAE;4BAC7D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;yBACrC;qBACF;oBAAC,OAAO,CAAC,EAAE,GAAE;iBACf;qBAAM,IAAI,IAAI,CAAC,KAAK,EAAE;oBACrB,IAAI;wBAEF,IAAI,CAAC,YAAY,EAAE,CAAC;wBACpB,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;4BACrD,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;yBACjD;qBACF;oBAAC,OAAO,CAAC,EAAE,GAAE;iBACf;aACF;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IAGM,eAAe,CAAC,OAAe;QACpC,IAAI;YACF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAc,CAAC,YAAY,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC7F,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B;YAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACxC;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IACM,oBAAoB;QAEzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC;IAEM,kBAAkB;QACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;IAClE,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC3C,IAAI;gBAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE,GAAE;YAC1D,OAAO;SACR;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE;YACrB,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;aAAM;YACL,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;IACH,CAAC;IAEO,kBAAkB,CAAC,CAAa;QACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,MAAM,IAAI,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;YAChE,IAAI;gBACF,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC7B,IAAI;wBAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;qBAAE;oBAAC,OAAO,CAAC,EAAE,GAAE;oBAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;iBACnC;gBACD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC;gBACxC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;SAC1B;IACH,CAAC;IAEO,oBAAoB,CAAC,CAAa;QACxC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExC,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAE/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAEtC,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SAC9F;aAAM;YACL,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;SACrF;IACH,CAAC;IAEO,iBAAiB;QACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC3D,WAAW,CAAC,WAAW,GAAG,GAAG,OAAO,MAAM,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,OAAO,MAAM,QAAQ,EAAE,CAAC,CAAC;SACpE;IACH,CAAC;IAEO,YAAY;QAClB,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC1C,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACvC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7C,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SACpC;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QAElC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACtE,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB;QACH,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAEO,YAAY;QAClB,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB;YACzB,QAAgB,CAAC,uBAAuB;YACxC,QAAgB,CAAC,oBAAoB;YACrC,QAAgB,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC;IAEO,wBAAwB;QAE9B,MAAM,sBAAsB,GAAG,GAAG,EAAE;YAClC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAEzC,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,YAAY,EAAE;oBAChB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;iBACpD;qBAAM;oBACL,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;iBACvD;aACF;YAGD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxC,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;YAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,CAAC;QAGF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;QACtE,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;QAC5E,QAAQ,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QACzE,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;QAGxE,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,sBAAsB,GAAQ,IAAI,CAAC;QAEvC,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,iBAAiB,GAAG,GAAG,CAAC;YAGxB,IAAI,CAAC,YAAY,EAAE,CAAC;YAGpB,YAAY,CAAC,sBAAsB,CAAC,CAAC;YAGrC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAClD,sBAAsB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC;oBACzD,IAAI,iBAAiB,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;wBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;qBACrB;gBACH,CAAC,EAAE,OAAO,CAAC,CAAC;aACb;QACH,CAAC,CAAC;QAGF,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxB,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC7B;QACH,CAAC,CAAC;QAGF,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACzF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1F;IACH,CAAC;IAEO,iBAAiB,CAAC,CAAa;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QAExD,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAE3C,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChD,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QACtD,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;IAClC,CAAC;IAEO,eAAe;QACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;SACjC;IACH,CAAC;IAGO,qBAAqB,CAAC,IAAY;QACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,CAAC,oCAAoC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,IAAI,CAAC,EAAE,EAAE;YACP,IAAI,CAAC,UAAU,CAAC,2CAA2C,CAAC,CAAC;YAC7D,OAAO;SACR;QACD,IAAI;YACF,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAE9B,KAAM,EAAkB,CAAC,WAAW,CAAC;gBACrC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC9B,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAChC,EAAE,CAAC,SAAS,GAAG,mCAAmC,GAAG,QAAQ,CAAC;gBAC9D,SAAS,EAAE,CAAC;YACd,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,GAAiB,EAAE,GAAW,EAAE,EAAE;gBACjD,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAChC,MAAM,GAAG,GAAG,GAAG,KAAK,KAAK;oBACvB,CAAC,CAAC,iLAAiL;oBACnL,CAAC,CAAC,0KAA0K,CAAC;gBAC/K,EAAE,CAAC,SAAS,GAAG,gEAAgE,GAAG,SAAS,GAAG,QAAQ,CAAC;gBACvG,SAAS,EAAE,CAAC;YACd,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,QAAiB,KAAK,EAAE,EAAE;gBAC5D,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACnC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;;;iBAGZ,CAAC,CAAC,CAAC;;;iBAGH,CAAC;gBACV,EAAE,CAAC,SAAS,GAAG;;2CAEoB,IAAI;oFACqC,CAAC;2CAC1C,CAAC;iBAC3B,CAAC;gBACV,SAAS,EAAE,CAAC;YACd,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE;gBAC5B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACnC,EAAE,CAAC,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC;gBAC5D,SAAS,EAAE,CAAC;YACd,CAAC,CAAC;YAGF,IAAI,IAAI,KAAK,MAAM,EAAE;gBACnB,OAAO,CAAC,0DAA0D,CAAC,CAAC;aACrE;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE;gBAC3B,OAAO,CAAC,4EAA4E,CAAC,CAAC;aACvF;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;aACpB;iBAAM,IAAI,IAAI,KAAK,MAAM,EAAE;gBAC1B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACrB;iBAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACzC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,SAAS,CAAC,GAAG,CAAC,CAAC;aAChB;iBAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE;gBACjD,MAAM,KAAK,GAAG,IAAI,KAAK,OAAO,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC7J,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACzB;iBAAM,IAAI,IAAI,KAAK,YAAY,EAAE;gBAChC,OAAO,CAAC,2HAA2H,CAAC,CAAC;aACtI;iBAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;gBACrC,OAAO,CAAC,0HAA0H,CAAC,CAAC;aACrI;iBAAM,IAAI,IAAI,KAAK,oBAAoB,EAAE;gBACxC,OAAO,CAAC,uJAAuJ,CAAC,CAAC;aAClK;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,CAAC;aACf;YAGD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,IAAI;oBAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE,GAAE;YACrD,CAAC,EAAE,IAAI,CAAC,CAAC;SACV;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI;gBACD,EAAkB,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACrD,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;aACvD;YAAC,OAAM,CAAC,EAAE,GAAE;SACd;IACH,CAAC;IAEM,yBAAyB,CAAC,IAAuC;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;QAC3E,QAAQ,IAAI,EAAE;YACZ,KAAK,SAAS;gBACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBAC/C,MAAM;YACR;gBAEE,MAAM;SACT;IACH,CAAC;IAEM,0BAA0B,CAAC,OAAiD;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAE7C,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9D;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;YACxD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3F,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzF,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mCAAmC,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,iCAAiC,EAAE,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/F,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,oBAAoB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC1G;IACH,CAAC;IAEO,oCAAoC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnC,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,EAAE;YACjF,IAAI,CAAC,yBAAyB,CAAC,SAA8C,CAAC,CAAC;SAChF;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,OAAO,GAA6C,EAAE,CAAC;QAC7D,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;QACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE;YACpE,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;SAC1C;IACH,CAAC;IAGM,QAAQ,CAAC,KAAU;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI;YACF,IAAI,OAAO,GAAkB,IAAI,CAAC;YAClC,IAAI,OAAO,GAAkB,IAAI,CAAC;YAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,WAAW,GAAkB,IAAI,CAAC;YACtC,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,aAAa,GAAkB,IAAI,CAAC;YACxC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;YAE7C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,OAAO,GAAG,KAAK,CAAC;aACjB;iBAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7C,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;gBAC/B,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC;gBAChC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;gBACpC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;gBACxC,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;gBAC5C,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;gBAC5C,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC;gBAC5C,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC;aACvD;YAED,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAElE,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE;gBACvB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpC,IAAI,GAAG,EAAE;oBACP,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC5C,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;iBACtC;qBAAM;oBAEL,OAAO,GAAG,OAAO,CAAC;iBACnB;aACF;YACD,IAAI,OAAO;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAGlE,IAAI,OAAO,EAAE;gBACX,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACvC,IAAI,GAAG;oBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;aAC9D;YAED,IAAI,SAAS;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,WAAW;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;YAC9E,IAAI,aAAa;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;YAGpF,IAAI,aAAa;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;YACpF,IAAI,aAAa;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAC;YACpF,IAAI,kBAAkB;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,2BAA2B,EAAE,kBAAkB,CAAC,CAAC;SACpG;QAAC,OAAO,CAAC,EAAE;SAEX;IACH,CAAC;IAEO,SAAS,CAAC,KAAa;QAC7B,IAAI;YACF,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE7C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACrB,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACpB;gBACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5C,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACpB;aACF;YAED,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAClG,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnF;aACF;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,YAAY,CAAC,GAAwC;QAC3D,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACtD,CAAC;IAEO,WAAW,CAAC,GAAwC,EAAE,MAAc;QAC1E,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7C,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACrC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACrC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;SACtC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,KAAa,EAAE,KAAa;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;IACpD,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,YAAY,EAAE;YAChE,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;YACnD,IAAI;gBACF,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC7B,IAAI;wBAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;qBAAE;oBAAC,OAAO,CAAC,EAAE,GAAE;oBAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;iBACnC;gBACD,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,QAAQ,CAAC,KAAa;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;QAGhC,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC1D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,UAAU,CAAE,MAAsB,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,EAAE;gBACtE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,OAAe;QACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAGlE,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5D,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAK,MAAsB,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;gBACvD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,YAAY,EAAE;YAChB,IAAI,OAAO,KAAK,MAAM,EAAE;gBACtB,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC;aACnC;iBAAM;gBACL,YAAY,CAAC,WAAW,GAAG,OAAO,GAAG,GAAG,CAAC;aAC1C;SACF;QAGD,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACnD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC;YACzE,IAAI,YAAY,EAAE;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC;gBACvE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACxB;SACF;aAAM,IAAI,OAAO,KAAK,MAAM,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI;YACF,IAAK,QAAgB,CAAC,uBAAuB,EAAE;gBAC7C,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;aACnC;iBAAM;gBACL,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;aACpC;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SAC5C;IACH,CAAC;IAEO,oBAAoB;QAC1B,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACzB;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9D,MAAM,QAAQ,GAAI,MAAc,CAAC,MAAM,CAAC;YACxC,MAAM,OAAO,GAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;YACrG,IAAI;gBACF,MAAM,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,CAAC;gBAC/D,IAAI,QAAQ;oBAAE,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC;aACjD;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAC/B,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,qBAAqB,EAC3D,CAAC,EAAO,EAAE,EAAE;gBACV,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC;gBAC9B,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe;oBACvD,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,eAAe,EAAE;oBAC3D,IAAI,CAAC,uBAAuB,EAAE,CAAC;iBAChC;qBAAM,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE;oBAChE,IAAI,CAAC,wBAAwB,EAAE,CAAC;iBACjC;YACH,CAAC,CACF,CAAC;SACH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;SAC5E;IACH,CAAC;IAEO,uBAAuB;QAC7B,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC/E,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvF,IAAI,CAAC,uBAAuB,EAAE,CAAC;aAChC;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI;gBAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE,GAAE;YACzC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;SACnF;IACH,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,uBAAuB;QAC7B,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM;YAAE,OAAO;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAEjC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,KAAK,EAAE;gBAE7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,QAAQ;oBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC9C,IAAI,SAAS;oBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;aAClD;iBAAM;gBACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,QAAQ;oBAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBAC/C,IAAI,SAAS;oBAAE,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;YACrF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;YACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrF,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,cAAc;gBAAE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;YAC/D,IAAI,cAAc;gBAAE,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;YAC9D,IAAI,WAAW;gBAAG,WAA2B,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAEzH,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,CAAC;YAClD,IAAI,WAAW;gBAAG,WAA2B,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YAC5B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;gBACnC,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB;QAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAgB,CAAC;QAC7E,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACxE,IAAI,UAAU;YAAE,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;QACrD,IAAI,WAAW;YAAG,WAA2B,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC;QAC5D,IAAI,UAAU,IAAI,QAAQ,EAAE;YAC1B,IAAI,OAAO,EAAE;gBACV,UAA0B,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBAClD,QAAwB,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;aACnD;iBAAM;gBACJ,UAA0B,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;gBACnD,QAAwB,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;aAClD;SACF;IACH,CAAC;IAEO,iBAAiB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;QACrF,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,qBAAqB,CAAgB,CAAC;QACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,IAAI,cAAc;YAAE,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;QAC/D,IAAI,cAAc;YAAE,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,GAAG,GAAG,CAAC;QAC9D,IAAI,WAAW;YAAG,WAA2B,CAAC,WAAW,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzH,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAEO,gBAAgB;QACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC3F,IAAI,OAAO;YAAG,OAAuB,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9F,IAAI,OAAO,EAAE;YACX,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnC,IAAI,KAAK,GAAG,aAAa,CAAC;gBAC1B,IAAI;oBACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;oBACpC,MAAM,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,EAAE,CAAC;oBAClF,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBACrE,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY;wBAAE,KAAK,IAAI,KAAK,GAAG,CAAC,YAAY,GAAG,CAAC;iBAChE;gBAAC,OAAO,CAAC,EAAE,GAAE;gBACd,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACtC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;aAC5C;SACF;QACD,IAAI,OAAO,EAAE;YACX,IAAI,IAAI,CAAC,SAAS;gBAAG,OAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;;gBACpE,OAAuB,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC/D;IACH,CAAC;IAEO,uBAAuB;QAC7B,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;YAC/E,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;YACnE,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,GAAG,GAAa,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;gBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7F,IAAI,GAAG;oBAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;aACtB;YACD,IAAI,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU,EAAE;gBAC/C,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;aAChD;iBAAM,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE;gBACxD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;aAC9B;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IAEO,iBAAiB;QACvB,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAChD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBACvD,GAAG,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACrC,OAAO;aACR;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;QAEd,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,WAAW;QACjB,IAAI;YACF,MAAM,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBAAE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;gBAAC,OAAO;aAAE;YACtF,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC9D,IAAI,IAAI,EAAE;gBACR,IAAI;oBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBAAE;gBAAC,OAAO,CAAC,EAAE,GAAE;gBAC3C,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;aAC1C;iBAAM;gBACL,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;aACtC;SACF;QAAC,OAAO,CAAC,EAAE;SAEX;gBAAS;YACR,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI;YACF,IAAI,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBAChC,MAAM,IAAI,CAAC,UAAU,CAAC,4EAA4E,CAAC,CAAC;gBAEpG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACzB,OAAO,CAAC,CAAC,CAAE,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,EAAE;oBAC/F,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;iBAC5C;gBACD,MAAM,GAAI,MAAc,CAAC,IAAI,CAAC;aAC/B;YACD,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE;gBACjC,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;gBAClD,OAAO;aACR;YAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,GAAG,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,EAAE;gBAAE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;gBAAC,OAAO;aAAE;YAEnE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,uBAAuB;gBAC/C,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAE,CAAC,CAAC,sBAAsB;oBAC9C,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY;wBACpC,CAAC,CAAC,WAAW,CAAC;YAEhC,MAAM,QAAQ,GAAI,MAAc,CAAC,MAAM,CAAC;YACxC,MAAM,SAAS,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACtE,SAAS,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/D,IAAI;gBACF,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC1D,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBACpI,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC;aACzB;YAAC,OAAO,CAAC,EAAE,GAAE;YAGd,MAAM,UAAU,GAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;YAC5B,MAAM,yBAAyB,GAAG,CAAC,QAAgB,EAAE,EAAE;gBACrD,MAAM,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,UAAU,CAAC;gBAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,sBAAsB,CAAC;gBACvD,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAAE,OAAO,sBAAsB,CAAC;gBACvG,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9D,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,GAAC,CAAC,EAAE,CAAC;oBACpD,IAAI;wBACF,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBACxF,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC;wBAC7B,KAAK,CAAC,gBAAgB,GAAG,yBAAyB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC1D,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;wBAC5D,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;wBACjB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;wBAClC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;wBACxB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;wBACrC,MAAM,EAAE,CAAC;qBACV;oBAAC,OAAO,CAAC,EAAE,GAAE;iBACf;aACF;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,SAAS,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC9B,IAAI;oBACF,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvD,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC;oBACpC,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC;oBACpC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC;oBACnE,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC;oBAC9B,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;oBACtB,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;iBAClC;gBAAC,OAAO,CAAC,EAAE,GAAE;aACf;YAED,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC/D,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,IAAI;gBAAE,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE,GAAE;YAEjG,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC7C,IAAI,CAAC,mBAAmB,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/J,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;gBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC7D,IAAI,GAAG;oBAAE,OAAO,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;aACzC;YAED,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACtC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,SAAS,GAAc,EAAE,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC;YAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC;YAAE,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QAE1B,IAAI;YACF,IAAI,SAAS,CAAC,KAAK,EAAE;gBACnB,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAClC;iBAAM;gBAEL,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;aACnD;SACF;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;SACvC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI;YACF,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAK,EAAU,CAAC;YAChD,MAAM,QAAQ,GAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,gBAAgB,CAAiB,IAAI,IAAI,CAAC;YAC1F,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAuB,CAAC;YACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAuB,CAAC;YACtF,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAA4B,CAAC;YAEtF,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,QAAQ,GAAG,CAAC,EAAE,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAG3D,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;aACtD;YAGD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;gBAC9B,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;aACpD;YAGD,IAAI,OAAO,EAAE;gBACX,IAAI,QAAQ,EAAE;oBACZ,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;iBACjC;qBAAM;oBACL,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;iBAChC;aACF;YAGD,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,CAAC;YACrD,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC/C;SACF;QAAC,OAAO,CAAC,EAAE,GAAgB;IAC9B,CAAC;IAEO,gBAAgB,CAAC,OAAe;QAEtC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAKO,YAAY;QAClB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QAGjD,IAAI,YAAY,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAGnC,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC;QAGxC,IAAI,WAAW,GAAG,YAAY;YAAE,OAAO,IAAI,CAAC;QAG5C,IAAI,IAAI,CAAC,iBAAiB;YACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,KAAK,UAAU,EAAE;YAChE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;YACxD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,OAAO,IAAI,CAAC;aACb;SACF;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,sBAAsB;QAC5B,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAG5C,IAAI;YACF,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;aACpB;SACF;QAAC,OAAO,CAAC,EAAE,GAAE;QAGd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAG5B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI;gBACF,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;aACtC;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;aAC1D;SACF;QAGD,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAKO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAG1D,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC;QAED,IAAI,CAAC,QAAQ,CAAC,mDAAmD,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAGpI,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC,GAAG,EAAE;YAE7C,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACnD,IAAI,CAAC,QAAQ,CAAC,mDAAmD,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;gBACpI,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;gBACD,OAAO;aACR;YAGD,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,QAAQ,CAAC,yDAAyD,CAAC,CAAC;gBACzE,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpC;gBACD,OAAO;aACR;YAGD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAc,CAAC,gBAAgB,CAAC,yCAAyC,CAAC,CAAC;YACxG,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACnE,MAAM,OAAO,GAAG,OAAsB,CAAC;gBACvC,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;oBAChC,OAAO,CAAC,YAAY,KAAK,IAAI;oBAC7B,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC;YAClE,CAAC,CAAC,CAAC;YAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,qCAAqC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,yBAAyB,GAAG,CAAC,CAAC;gBAGtH,IAAI,IAAI,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;oBACvE,IAAI,IAAI,CAAC,sBAAsB,EAAE;wBAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;wBAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;qBACpC;oBACD,OAAO;iBACR;gBAED,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,yBAAyB,EAAE;oBACjE,IAAI,CAAC,uBAAuB,EAAE,CAAC;iBAChC;qBAAM;oBAEL,IAAI,CAAC,sBAAsB,EAAE,CAAC;iBAC/B;aACF;YAGD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC/D,IAAI,CAAC,SAAS,CAAC,+CAA+C,CAAC,CAAC;gBAChE,IAAI;oBACF,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;oBAC3D,IAAI,YAAY,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;qBACxD;iBACF;gBAAC,OAAO,CAAC,EAAE,GAAE;aACf;QACH,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC;IAKO,uBAAuB;QAC7B,IAAI,CAAC,UAAU,CAAC,+CAA+C,CAAC,CAAC;QAGjE,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;SACnC;QAGD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAGpC,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;SAC5C;IACH,CAAC;IAKO,4BAA4B;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAGhC,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE,CAAC;QAGlC,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACtD,eAAe,CAAC,KAAK,CAAC,OAAO,GAAG;;;;;;;;;;;;KAY/B,CAAC;QAEF,MAAM,gBAAgB,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,gBAAgB,CAAC,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;KAoB5B,CAAC;QAEF,eAAe,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAKO,oBAAoB;QAC1B,IAAI,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAGhC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,yCAAyC,CAAC,CAAC;QAChG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YACpC,MAAM,WAAW,GAAG,OAAsB,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAG1D,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YACnC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAGvC,IAAI,WAAW,CAAC,UAAU,EAAE;gBAC1B,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;aACjD;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,KAAK,UAAU,EAAE;YAC1F,IAAI,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC;SAC1C;IACH,CAAC;IAKM,aAAa;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;SAC9C;IACH,CAAC;IAKM,aAAa;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACpC;IACH,CAAC;IAMM,UAAU,CAAC,OAAY;QAC5B,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YAE5C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;SAC5C;aAAM;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;SACtD;IACH,CAAC;IAKM,kBAAkB;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;SACjB;QAED,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAGrB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACtC;QAGD,IAAI,IAAI,CAAC,sBAAsB,EAAE;YAC/B,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAC3C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;SACpC;QAGD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;QAGhC,IAAI,IAAI,CAAC,iBAAiB,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,KAAK,UAAU,EAAE;YAClF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"WebPlayer.js","sourceRoot":"","sources":["../src/WebPlayer.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,11 @@ export class WebPlayer extends BasePlayer {
61
61
  // Paywall
62
62
  private paywallController: any = null;
63
63
 
64
+ // EPG (Electronic Program Guide) functionality
65
+ private epgData: any = null;
66
+ private epgOverlay: HTMLElement | null = null;
67
+ private isEPGVisible: boolean = false;
68
+
64
69
  // Play/pause coordination to prevent race conditions
65
70
  private _playPromise: Promise<void> | null = null;
66
71
  private _deferredPause = false;
@@ -2841,8 +2846,7 @@ export class WebPlayer extends BasePlayer {
2841
2846
  epgBtn?.addEventListener('click', (e) => {
2842
2847
  e.stopPropagation();
2843
2848
  this.debugLog('EPG button clicked');
2844
- // Trigger custom event for EPG toggle
2845
- this.emit('epgToggle', {});
2849
+ this.toggleEPG();
2846
2850
  });
2847
2851
 
2848
2852
  // PiP button
@@ -2956,10 +2960,19 @@ export class WebPlayer extends BasePlayer {
2956
2960
  shortcutText = 'Picture-in-Picture';
2957
2961
  break;
2958
2962
  case 'g':
2959
- e.preventDefault();
2960
- this.debugLog('G key pressed - toggling EPG');
2961
- this.emit('epgToggle', {});
2962
- shortcutText = 'Toggle EPG';
2963
+ if (e.ctrlKey) {
2964
+ e.preventDefault();
2965
+ this.debugLog('Ctrl+G pressed - toggling EPG');
2966
+ this.toggleEPG();
2967
+ shortcutText = 'Toggle EPG';
2968
+ }
2969
+ break;
2970
+ case 'Escape':
2971
+ if (this.isEPGVisible) {
2972
+ e.preventDefault();
2973
+ this.hideEPGOverlay();
2974
+ shortcutText = 'Close EPG';
2975
+ }
2963
2976
  break;
2964
2977
  case '0':
2965
2978
  case '1':
@@ -4431,6 +4444,7 @@ export class WebPlayer extends BasePlayer {
4431
4444
  * @param epgData - The EPG data to set
4432
4445
  */
4433
4446
  public setEPGData(epgData: any): void {
4447
+ this.epgData = epgData;
4434
4448
  if (epgData && Object.keys(epgData).length > 0) {
4435
4449
  this.showEPGButton();
4436
4450
  this.debugLog('EPG data set, button shown');
@@ -4450,6 +4464,312 @@ export class WebPlayer extends BasePlayer {
4450
4464
  return epgBtn ? epgBtn.style.display !== 'none' : false;
4451
4465
  }
4452
4466
 
4467
+ /**
4468
+ * Toggle the EPG overlay visibility
4469
+ */
4470
+ private toggleEPG(): void {
4471
+ if (this.isEPGVisible) {
4472
+ this.hideEPGOverlay();
4473
+ } else {
4474
+ this.showEPGOverlay();
4475
+ }
4476
+ }
4477
+
4478
+ /**
4479
+ * Show the EPG overlay
4480
+ */
4481
+ private showEPGOverlay(): void {
4482
+ if (!this.epgData) {
4483
+ this.showNotification('No EPG data available');
4484
+ return;
4485
+ }
4486
+
4487
+ if (!this.epgOverlay) {
4488
+ this.createEPGOverlay();
4489
+ }
4490
+
4491
+ if (this.epgOverlay) {
4492
+ this.epgOverlay.style.display = 'flex';
4493
+ this.isEPGVisible = true;
4494
+ this.debugLog('EPG overlay shown');
4495
+ this.emit('epgToggle', { visible: true, data: this.epgData });
4496
+ }
4497
+ }
4498
+
4499
+ /**
4500
+ * Hide the EPG overlay
4501
+ */
4502
+ private hideEPGOverlay(): void {
4503
+ if (this.epgOverlay) {
4504
+ this.epgOverlay.style.display = 'none';
4505
+ this.isEPGVisible = false;
4506
+ this.debugLog('EPG overlay hidden');
4507
+ this.emit('epgToggle', { visible: false, data: this.epgData });
4508
+ }
4509
+ }
4510
+
4511
+ /**
4512
+ * Create the EPG overlay UI
4513
+ */
4514
+ private createEPGOverlay(): void {
4515
+ if (!this.playerWrapper) return;
4516
+
4517
+ // Create overlay container
4518
+ this.epgOverlay = document.createElement('div');
4519
+ this.epgOverlay.className = 'uvf-epg-overlay';
4520
+ this.epgOverlay.style.cssText = `
4521
+ position: absolute;
4522
+ top: 0;
4523
+ left: 0;
4524
+ right: 0;
4525
+ bottom: 0;
4526
+ background: rgba(0, 0, 0, 0.95);
4527
+ color: white;
4528
+ z-index: 1000;
4529
+ display: none;
4530
+ flex-direction: column;
4531
+ padding: 20px;
4532
+ box-sizing: border-box;
4533
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4534
+ `;
4535
+
4536
+ // Create header with close button
4537
+ const header = document.createElement('div');
4538
+ header.style.cssText = `
4539
+ display: flex;
4540
+ justify-content: space-between;
4541
+ align-items: center;
4542
+ margin-bottom: 20px;
4543
+ border-bottom: 1px solid rgba(255, 255, 255, 0.2);
4544
+ padding-bottom: 15px;
4545
+ `;
4546
+
4547
+ const title = document.createElement('h2');
4548
+ title.textContent = 'Electronic Program Guide';
4549
+ title.style.cssText = `
4550
+ margin: 0;
4551
+ color: #ff6b35;
4552
+ font-size: 24px;
4553
+ font-weight: 600;
4554
+ `;
4555
+
4556
+ const closeBtn = document.createElement('button');
4557
+ closeBtn.innerHTML = '×';
4558
+ closeBtn.style.cssText = `
4559
+ background: none;
4560
+ border: none;
4561
+ color: white;
4562
+ font-size: 32px;
4563
+ cursor: pointer;
4564
+ padding: 0;
4565
+ width: 40px;
4566
+ height: 40px;
4567
+ display: flex;
4568
+ align-items: center;
4569
+ justify-content: center;
4570
+ border-radius: 50%;
4571
+ transition: background-color 0.2s;
4572
+ `;
4573
+ closeBtn.addEventListener('click', () => this.hideEPGOverlay());
4574
+ closeBtn.addEventListener('mouseenter', () => {
4575
+ closeBtn.style.backgroundColor = 'rgba(255, 255, 255, 0.1)';
4576
+ });
4577
+ closeBtn.addEventListener('mouseleave', () => {
4578
+ closeBtn.style.backgroundColor = 'transparent';
4579
+ });
4580
+
4581
+ header.appendChild(title);
4582
+ header.appendChild(closeBtn);
4583
+
4584
+ // Create content area
4585
+ const content = document.createElement('div');
4586
+ content.className = 'uvf-epg-content';
4587
+ content.style.cssText = `
4588
+ flex: 1;
4589
+ overflow-y: auto;
4590
+ padding-right: 10px;
4591
+ `;
4592
+
4593
+ // Populate with EPG data
4594
+ this.populateEPGContent(content);
4595
+
4596
+ // Create footer with instructions
4597
+ const footer = document.createElement('div');
4598
+ footer.style.cssText = `
4599
+ margin-top: 20px;
4600
+ padding-top: 15px;
4601
+ border-top: 1px solid rgba(255, 255, 255, 0.2);
4602
+ text-align: center;
4603
+ color: rgba(255, 255, 255, 0.7);
4604
+ font-size: 14px;
4605
+ `;
4606
+ footer.innerHTML = 'Press <strong>Esc</strong> or <strong>Ctrl+G</strong> to close • Click outside to close';
4607
+
4608
+ // Assemble overlay
4609
+ this.epgOverlay.appendChild(header);
4610
+ this.epgOverlay.appendChild(content);
4611
+ this.epgOverlay.appendChild(footer);
4612
+
4613
+ // Add to player wrapper
4614
+ this.playerWrapper.appendChild(this.epgOverlay);
4615
+
4616
+ // Close on Escape key
4617
+ this.epgOverlay.addEventListener('keydown', (e) => {
4618
+ if (e.key === 'Escape') {
4619
+ this.hideEPGOverlay();
4620
+ }
4621
+ });
4622
+
4623
+ // Close when clicking outside content
4624
+ this.epgOverlay.addEventListener('click', (e) => {
4625
+ if (e.target === this.epgOverlay) {
4626
+ this.hideEPGOverlay();
4627
+ }
4628
+ });
4629
+
4630
+ this.debugLog('EPG overlay created');
4631
+ }
4632
+
4633
+ /**
4634
+ * Populate the EPG content area with channel and program data
4635
+ */
4636
+ private populateEPGContent(container: HTMLElement): void {
4637
+ if (!this.epgData) return;
4638
+
4639
+ // Clear existing content
4640
+ container.innerHTML = '';
4641
+
4642
+ // Handle different EPG data formats
4643
+ if (Array.isArray(this.epgData)) {
4644
+ // Array of channels
4645
+ this.renderChannelList(container, this.epgData);
4646
+ } else if (this.epgData.channels) {
4647
+ // Object with channels property
4648
+ this.renderChannelList(container, this.epgData.channels);
4649
+ } else {
4650
+ // Unknown format, display as JSON
4651
+ container.innerHTML = `
4652
+ <div style="font-family: monospace; font-size: 12px; color: rgba(255, 255, 255, 0.8);">
4653
+ <pre>${JSON.stringify(this.epgData, null, 2)}</pre>
4654
+ </div>
4655
+ `;
4656
+ }
4657
+ }
4658
+
4659
+ /**
4660
+ * Render a list of channels with their programs
4661
+ */
4662
+ private renderChannelList(container: HTMLElement, channels: any[]): void {
4663
+ if (!Array.isArray(channels) || channels.length === 0) {
4664
+ container.innerHTML = '<div style="text-align: center; color: rgba(255, 255, 255, 0.7);">No channels available</div>';
4665
+ return;
4666
+ }
4667
+
4668
+ channels.forEach((channel, index) => {
4669
+ const channelDiv = document.createElement('div');
4670
+ channelDiv.style.cssText = `
4671
+ margin-bottom: 20px;
4672
+ padding: 15px;
4673
+ background: rgba(255, 255, 255, 0.05);
4674
+ border-radius: 8px;
4675
+ border-left: 3px solid #ff6b35;
4676
+ `;
4677
+
4678
+ // Channel header
4679
+ const channelHeader = document.createElement('div');
4680
+ channelHeader.style.cssText = `
4681
+ display: flex;
4682
+ align-items: center;
4683
+ margin-bottom: 10px;
4684
+ `;
4685
+
4686
+ const channelName = document.createElement('h3');
4687
+ channelName.textContent = channel.name || channel.title || `Channel ${index + 1}`;
4688
+ channelName.style.cssText = `
4689
+ margin: 0;
4690
+ color: #ff6b35;
4691
+ font-size: 18px;
4692
+ font-weight: 600;
4693
+ `;
4694
+
4695
+ const channelNumber = document.createElement('span');
4696
+ if (channel.number || channel.id) {
4697
+ channelNumber.textContent = `Ch ${channel.number || channel.id}`;
4698
+ channelNumber.style.cssText = `
4699
+ margin-left: 10px;
4700
+ padding: 2px 8px;
4701
+ background: rgba(255, 107, 53, 0.2);
4702
+ border-radius: 12px;
4703
+ font-size: 12px;
4704
+ color: rgba(255, 255, 255, 0.8);
4705
+ `;
4706
+ }
4707
+
4708
+ channelHeader.appendChild(channelName);
4709
+ if (channelNumber.textContent) {
4710
+ channelHeader.appendChild(channelNumber);
4711
+ }
4712
+
4713
+ // Programs list
4714
+ const programsList = document.createElement('div');
4715
+ programsList.style.cssText = `
4716
+ margin-left: 10px;
4717
+ `;
4718
+
4719
+ if (channel.programs && Array.isArray(channel.programs)) {
4720
+ channel.programs.slice(0, 5).forEach((program: any) => { // Limit to 5 programs per channel
4721
+ const programDiv = document.createElement('div');
4722
+ programDiv.style.cssText = `
4723
+ display: flex;
4724
+ justify-content: space-between;
4725
+ align-items: center;
4726
+ padding: 5px 0;
4727
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
4728
+ `;
4729
+
4730
+ const programInfo = document.createElement('div');
4731
+ programInfo.style.flex = '1';
4732
+
4733
+ const programTitle = document.createElement('div');
4734
+ programTitle.textContent = program.title || program.name || 'Untitled Program';
4735
+ programTitle.style.cssText = `
4736
+ color: white;
4737
+ font-weight: 500;
4738
+ margin-bottom: 2px;
4739
+ `;
4740
+
4741
+ const programTime = document.createElement('div');
4742
+ const startTime = program.startTime ? new Date(program.startTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4743
+ const endTime = program.endTime ? new Date(program.endTime).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '';
4744
+ programTime.textContent = startTime && endTime ? `${startTime} - ${endTime}` : 'Time TBA';
4745
+ programTime.style.cssText = `
4746
+ color: rgba(255, 255, 255, 0.6);
4747
+ font-size: 12px;
4748
+ `;
4749
+
4750
+ programInfo.appendChild(programTitle);
4751
+ programInfo.appendChild(programTime);
4752
+ programDiv.appendChild(programInfo);
4753
+
4754
+ programsList.appendChild(programDiv);
4755
+ });
4756
+ } else {
4757
+ const noPrograms = document.createElement('div');
4758
+ noPrograms.textContent = 'No programs available';
4759
+ noPrograms.style.cssText = `
4760
+ color: rgba(255, 255, 255, 0.6);
4761
+ font-style: italic;
4762
+ padding: 10px 0;
4763
+ `;
4764
+ programsList.appendChild(noPrograms);
4765
+ }
4766
+
4767
+ channelDiv.appendChild(channelHeader);
4768
+ channelDiv.appendChild(programsList);
4769
+ container.appendChild(channelDiv);
4770
+ });
4771
+ }
4772
+
4453
4773
  private async cleanup(): Promise<void> {
4454
4774
  if (this.hls) {
4455
4775
  this.hls.destroy();